package
myTest_EA;
import java.util. * ;
public class ThreadPool extends Thread
... {
/** *//**
* @param args
*/
//pool是作业数
private List pool;
public ThreadPool(List pool)
...{
this.pool = pool ;
}
public void run()
...{
for(int i = 0; i < 3; i++)
...{
synchronized(pool)
...{
while(pool.isEmpty())
...{
try
...{
System.out.println( " thread name:" + this.getName() + " pool.wait()");
pool.wait();
}
catch(InterruptedException ex)
...{
}
}
pool.remove(pool.size() - 1);
System.out.println(" pool.size()" + pool.size() + " thread name:" + this.getName());
}
}
}
public final static int THREAD_COUNT = 5;
public static void main(String[] args)
...{
// TODO Auto-generated method stub
Vector pool = new Vector();
ThreadPool[] threadPool = new ThreadPool[THREAD_COUNT];
System.out.println("a");
System.out.println(threadPool.length);
for(int i = 0; i < threadPool.length; i++)
...{
threadPool[i] = new ThreadPool(pool);
threadPool[i].start();
}
System.out.println("b");
for(int i = 0; i < 10; i++)
...{
synchronized(pool)
...{
System.out.println(" " + i + " " );
pool.add(0,"bbbbbbbbbb");
/**//*pool.add(1,"ccc");
pool.add(2,"dd");
pool.add(3,"e");
pool.add(4,"ee");*/
//pool.add(5,"f");
pool.notifyAll();
System.out.println("pool.size:" + pool.size() );
System.out.println("threadPool:" + threadPool.length );
}
}
/**//*for(int i = 0; i < threadPool.length; i++)
{
threadPool[i].interrupt();
}*/
}
}
import java.util. * ;
public class ThreadPool extends Thread
... {
/** *//**
* @param args
*/
//pool是作业数
private List pool;
public ThreadPool(List pool)
...{
this.pool = pool ;
}
public void run()
...{
for(int i = 0; i < 3; i++)
...{
synchronized(pool)
...{
while(pool.isEmpty())
...{
try
...{
System.out.println( " thread name:" + this.getName() + " pool.wait()");
pool.wait();
}
catch(InterruptedException ex)
...{
}
}
pool.remove(pool.size() - 1);
System.out.println(" pool.size()" + pool.size() + " thread name:" + this.getName());
}
}
}
public final static int THREAD_COUNT = 5;
public static void main(String[] args)
...{
// TODO Auto-generated method stub
Vector pool = new Vector();
ThreadPool[] threadPool = new ThreadPool[THREAD_COUNT];
System.out.println("a");
System.out.println(threadPool.length);
for(int i = 0; i < threadPool.length; i++)
...{
threadPool[i] = new ThreadPool(pool);
threadPool[i].start();
}
System.out.println("b");
for(int i = 0; i < 10; i++)
...{
synchronized(pool)
...{
System.out.println(" " + i + " " );
pool.add(0,"bbbbbbbbbb");
/**//*pool.add(1,"ccc");
pool.add(2,"dd");
pool.add(3,"e");
pool.add(4,"ee");*/
//pool.add(5,"f");
pool.notifyAll();
System.out.println("pool.size:" + pool.size() );
System.out.println("threadPool:" + threadPool.length );
}
}
/**//*for(int i = 0; i < threadPool.length; i++)
{
threadPool[i].interrupt();
}*/
}
}
当程序中还有线程处于wait()状态时,程序不会自动退出(未完待续,代码会帖上改进后的)