本人不太擅长多线程,但最近因为工作需要,使用到了,所以来求助了,需求这样的:要固定创建线程池跑线程,同时访问数据进来了后加入队列,线程去读取队列后处理程序,这样使访问数据和线程耦合性降低,彼此减少影响。这个代码怎么写,谁能给个demo,知道的别写个大概,写详细点,谢谢了。(我原来是来一个访问就new一个线程处理,老大说这样不好,就提了这样的要求)
建议楼主使用反射试试
我觉得反射应该可以解决这个问题,可是反射不怎么会
http://www.cnblogs.com/dolphin0520/p/3932921.html
给你分享一篇文章,这里有介绍你需要的实现。
简单问题复杂化了。
线程池,本身有任务队列;
你还要用到数据队列;
两把锁;
一把数据锁就解决的问题。
自己构建一个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();