社区
Java SE
帖子详情
多线程 producer consumer问题
easyroom
2011-01-26 07:47:16
场景介绍。系统中有一个导入功能,导入后要对数据进行一系列处理。处理逻辑较复杂,所以用一个线程延时来处理。现在的情形就是导入后就创建一组任务,任务加入待处理列表中。处理的线程进行处理,没有任务时就等待,直到有任务进来再唤醒。
现在wait notify都是手工做的,代码乱的没法看了。有经验的筒子们给点建议,有啥现成的Lib啊,模式啊,尽量拍啊
...全文
93
9
打赏
收藏
多线程 producer consumer问题
场景介绍。系统中有一个导入功能,导入后要对数据进行一系列处理。处理逻辑较复杂,所以用一个线程延时来处理。现在的情形就是导入后就创建一组任务,任务加入待处理列表中。处理的线程进行处理,没有任务时就等待,直到有任务进来再唤醒。 现在wait notify都是手工做的,代码乱的没法看了。有经验的筒子们给点建议,有啥现成的Lib啊,模式啊,尽量拍啊
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
easyroom
2011-01-27
打赏
举报
回复
导入的数据存在表A中,线程的任务是根据业务逻辑,设置表A中某些字段的值
导入的方法是有事务控制的。事务控制是由spring的taransaction manager管理的。是加在方法上的。向任务队列中添加任务是在导入方法中做得。导入方法与线程中的操作同时执行的话会报一个数据库异常。所以要在开始导入前,让线程暂停,在结束之后再恢复它
火龙果被占用了
2011-01-26
打赏
举报
回复
等你什么通知?具体什么需求!
easyroom
2011-01-26
打赏
举报
回复
LinkedBlockingQueue 不错,但是还有点不满足需要
1,我不希望put进去task之后立刻开始处理,我希望它等我通知的时候在开始
火龙果被占用了
2011-01-26
打赏
举报
回复
LinkedBlockingQueue 属于 Java 集合框架类库之一,并且在 java.util.concurrent 下,其是线程安全的,可以被多个线程并发地进行处理。
火龙果被占用了
2011-01-26
打赏
举报
回复
把任务添加到 LinkedBlockingQueue 中去,另启一个线程从这个队列中 take 出任务就可以了,没有任务时 take 自己会阻塞掉,如果队列满了,在 put 时就会阻塞掉。看任务的处理速度,以及数量有多少来设定这个 Queue 的长度。
easyroom
2011-01-26
打赏
举报
回复
看来着,好像不太合用啊
我处理的行为优先级比较低,不打算让它多线程跑,一个线程慢慢做就ok了
iambic
2011-01-26
打赏
举报
回复
java.util.concurrent.Executor
java.util.concurrent.Executors
java.util.concurrent.ExecutorService
Java:
多线程
Pro
duc
er
-Con
sum
er
的多种实现
多线程
Pro
duc
er
-Con
sum
er
的多种实现 更多类型
Pro
duct-Con
sum
er
的实现:https://github.com/Al-assad/
Pro
du
er
-Con
sum
er
1、使用老式synchronized互斥锁实现: /** * @see * @author Al_assad yulinying_1994@outlook.com * @date 2016年1
java
多线程
设计之
Pro
duc
er
-Con
sum
er
模式
生产者安全地将数据交给消费者。
pro
duc
er
是生产者的意思:指生产数据的线程,con
sum
er
是消费者的意思,指的是使用数据的线程。例如消费者想要获取数据,可数据还没生成,或者生成者想要交付数据,而消费者的状态还无法接受数据这样的情况。这个时候
Pro
duc
er
-Con
sum
er
模式在生产者和消费者之间加入了一个“桥梁角色”,该桥梁角色用于消除线程间处理速度的差异。 这是一个实例图,方便理解
Pro
...
轻松学习
多线程
-06-
Pro
duc
er
Con
sum
er
模式
Pro
duc
er
Con
sum
er
模式
Pro
duc
er
Con
sum
er
模式是指一个负责生产,一个负责消费。 核心是生产者安全地将数据交给消费者。 实际案例 类信息概览: 类名 说明 Main.java 方法的总入口 Con
sum
er
CakeThread.java 消费蛋糕的线程 Table.java 放置蛋糕的桌子 Bl...
多线程
编程模式之
Pro
duc
er
& Con
sum
er
(生产者和消费者模式)
Pro
duc
er
& Con
sum
er
Pro
duc
er
& Con
sum
er
模式介绍 生产者是指生产数据的线程,消费者是指使用数据的线程;生产者-消费者模式是一种为实现生产者安全地将数据交给消费者这一目标而存在的模式;
Pro
duc
er
& Con
sum
er
的使用场景 生产数据和使用数据的线程并不相同,且互不干扰;
Pro
duc
er
& Con
sum
er
示例代...
多线程
基础之设计模式
Pro
duc
er
-Con
sum
er
模式
多线程
基础之设计模式
Pro
dic
er
-Con
sum
er
模式
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章