因为工作需要,使用到了,所以来求助了,需求这样的:要固定创建线程池跑线程,同时访问数据进来了后加入队列,线程去读取队列后处理程序,这样使访问数据和线程耦合性降低,彼此减少影响。这个代码怎么写,谁能给个demo,知道的别写个大概,写详细点,谢谢了。(我原来是来一个访问就new一个线程处理,老大说这样不好,就提了这样的要求)
简单问题复杂化了。
线程池,本身有任务队列;
你还要用到数据队列;
两把锁;
一把数据锁就解决的问题。
自己构建一个blockingqueue,注入到m个生产者线程及n个消费者线程中;
生产者线程不停的生产,往queue里put(),如果队列队列满了,线程wait挂起;
消费者线程不停的消费,从queue里take(),如过队列空了,线程自动挂起;
BlockingQueue<T> queue = new ArrayBlockingQueue<T>(1000);
for(int i=0;i<5;i++)
new ConsumerThread(queue).start();
for(int i=0;i<10;i++)
new ProducerThread(queue).start();
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。