java多线程的线程池

来源:互联网 发布:知乎 可怕 编辑:程序博客网 时间:2024/06/13 03:31
Executors.newScheduledThreadPool(int):相当于Timer定时器的作用.int值代表有几个线程。再调用其.schedule()方法,就是启动一个定时的任务,池子里有3个线程容量,类似
Executors.newFixedThreadPool(int);一样,它是返回线程池,启动的任务多了,其余任务就在那里等待。

这是一个简单模拟线程池的代码:EEEEE类我们把他当做线程池。


package day3_13;


import java.util.ArrayList;
import java.util.List;


public class EEEEE {
private static List<Runnable> list = new ArrayList<Runnable>();
private int size;

EEEEE(int size)
{
this.size = size;
}
public void execute(Runnable r) 
{
if(list.size()<=size)
{
synchronized(EEEEE.class)
{
list.add(r);
new Thread(r).start();
}
//EEEEE.class.notifyAll();
}
{
try {
EEEEE.class.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


}
public List<Runnable> getSize()
{
return list;
}
public static void main(String[] args) {
for(int x=0;x<10;x++)
{
new EEEEE(3).execute(new A());
}
}
}
class A implements Runnable
{
public void run()
{
//代码最后减去执行完毕那个线程
//
notifyAll();
}
}

0 0
原创粉丝点击