日期:2014-05-17  浏览次数:20606 次

java,如果让当前线程为等待状态? 其它线程执行完毕后,此线程自动进入执行?
本帖最后由 a_yyc1990 于 2013-06-08 17:48:59 编辑
java里面,我使用的线程池;
比如,我现在我的程序里面有50个线程在运行,我设置的是最高同时50个线程一起工作,如果再来一个线程A,我想让A进入等待状态,因为线程数达到了瓶颈,不能同时51个线程一起工作,要让线程A进入等待状态,等正在运行的50个线程中有某一个退出了,A线程自动进入执行。。。
同理,A线程后如果来了B线程、C线程....  如果当前没有50个线程运行,就让他们加入,如果有50个在同时运行,就让其处于等待状态。

请问这个需求如何实现?
java程序如何实现?
大侠们,求教
java 多线程 高并发 ?线程池 大数据

------解决方案--------------------
你说的让线程等待的实现并不是线程池的概念,可以用线程的wait跟notify实现。
或者用java的ThreadPoolExecutor,设定50最大线程,你只需要把任务提交到线程池即可。
其原理就是线程的复用,任务放在一个队列里,线程循环地取任务执行。
------解决方案--------------------
你要实现的其实就是固定50个线程的线程池概念,线程诞生是为了执行任务,新加的线程本质上是新加的任务,因为同时工作的线程不能超过50