开发者社区> 问答> 正文

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

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

展开
收起
蛮大人123 2016-03-19 17:09:57 2927 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    简单问题复杂化了。
    线程池,本身有任务队列;
    你还要用到数据队列;
    两把锁;
    一把数据锁就解决的问题。
    自己构建一个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();
    2019-07-17 19:08:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载