您的位置:首页 > 编程语言 > Java开发

一个简单的JAVA线程池(只是用实验)

2007-08-20 12:01 696 查看

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();


}*/






}








}



当程序中还有线程处于wait()状态时,程序不会自动退出(未完待续,代码会帖上改进后的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: