采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,多生产者消费之模式,使用RingBuffer,任务结束以后如何像 disruptor那样关闭了
讲课的代码,创建了10个消费者,Consumer[] consumers = new Consumer[10];
workerPool.start(线程池)时, 如果采用Executors.newFixedThreadPool创建线程池,这里的构造参数一定要>=10个消费者,如果小于10,只会创建指定数量的消费者线程进行消费,且无法进行关闭。这里老师的示例代码留了一个坑,最后如果想关闭,可通过如下代码:
executorService.shutdown();workerPool.drainAndHalt();
我也发现在多生产者和多消费者的模式下,程序在执行完并没有结束,而且CPU的使用率还非常高?这种真的不需要处理吗?
一般情况下不需要关闭 ,如果单次执行,停止pool就可以了,
老师您说的是关闭线程池吧,workpool不用关吗
登录后可查看更多问答,登录/注册
专为Java工程师打造,并发编程高手养成与高薪面试深度课程
1.1k 6
787 9
844 8
754 7
655 6