java多线程 读取队列数据,减少耦合性怎么做? 10C

本人不太擅长多线程,但最近因为工作需要,使用到了,所以来求助了,需求这样的:要固定创建线程池跑线程,同时访问数据进来了后加入队列,线程去读取队列后处理程序,这样使访问数据和线程耦合性降低,彼此减少影响。这个代码怎么写,谁能给个demo,知道的别写个大概,写详细点,谢谢了。(我原来是来一个访问就new一个线程处理,老大说这样不好,就提了这样的要求)

4个回答

建议楼主使用反射试试

我觉得反射应该可以解决这个问题,可是反射不怎么会

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();
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问