社区
进程/线程/DLL
帖子详情
如何让线程按指定顺序执行
gxx2019
2009-10-08 08:04:11
有3个线程,A负责接收数据,B负责处理数据,C负责写数据到磁盘。请问用什么样的同步方法,可以让3个线程顺序执行。
即总是A先执行,然后B,然后C。
...全文
268
17
打赏
收藏
如何让线程按指定顺序执行
有3个线程,A负责接收数据,B负责处理数据,C负责写数据到磁盘。请问用什么样的同步方法,可以让3个线程顺序执行。 即总是A先执行,然后B,然后C。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
u26zxu
2009-10-20
打赏
举报
回复
同意sevencat看法.队列处理
分析.A B 业务特点. 比如A采集要求的是不连续性,持续性, B处理业务处理时间 C业务处理时间等
进行适当的处理,比如队列长度,是否要用链表,还是加入丢包处理等,
这种分多线程我想适合A接收短时间内要求实时性比较高的情况下用,跟据业务实时性要求建立缓冲
sevencat
2009-10-18
打赏
举报
回复
我做过一个类似的东东,不过我的效率未必高,我是建立了两个队列,A线程完成后丢队列1,B线程不停的到队列1取东东,取到后进行处理,并再丢到队列2,C线程不停的到队列2取东东执行。我自己觉得这样很清晰。也不太容易出问题。
danscort2000
2009-10-13
打赏
举报
回复
最简单也是最高效的方法
采用线程消息环
A-B
B-C
C-A
就可以了
szsmile123
2009-10-13
打赏
举报
回复
A线接收到数据创建B线程,然后B线程在创建C线程,各线程之间的数据传递就很多种了
wangk
2009-10-13
打赏
举报
回复
我建议你使用Fiber(也就是俗称的纤程),然后配合数据队列自己来调度。
不过逻辑一定要理清楚,否则你会发现,还不如用单线程来实现。
greatws
2009-10-13
打赏
举报
回复
一个wait一个,不过这样你就失去多线程的意义了,就在一个线程处理好了。
一条晚起的虫
2009-10-09
打赏
举报
回复
[Quote=引用 6 楼 lisunlin0 的回复:]
如果必须按这样的设计执行的话,一个线程序搞定,不用需要用多线程。
[/Quote]
//同感
sunlin7
2009-10-09
打赏
举报
回复
如果必须按这样的设计执行的话,一个线程序搞定,不用需要用多线程。
ssmartboy
2009-10-09
打赏
举报
回复
学一下线程同步,<<windows核心编程>>上非常清楚
litomboy
2009-10-09
打赏
举报
回复
学习
必成桂
2009-10-09
打赏
举报
回复
用event事件就可以了。
创建事件event1, 事件event2
线程B等待event1, 线程A执行完成后通知B执行。
线程C等待event2, B执行完成通知C执行。
ccc_cgreen
2009-10-09
打赏
举报
回复
严格要求某些线程按照某种顺序执行是几乎不可能的,毕竟,你没有办法预先知道下一个CPU时间片分配给哪个线程,你要实现你的业务逻辑的话,一般都是通过线程同步,来保证A接受到数据之后,然后B再处理,然后C再处理
ssmartboy
2009-10-09
打赏
举报
回复
[Quote=引用 6 楼 lisunlin0 的回复:]
如果必须按这样的设计执行的话,一个线程序搞定,不用需要用多线程。
[/Quote]
概念错误,可接受若干次,也可以处理若干次,还可以写若干此磁盘,而且他们的次数是可以不等的.所以说多线程是有用武之地的
wltg2001
2009-10-08
打赏
举报
回复
[Quote=引用楼主 gxx2019 的回复:]
有3个线程,A负责接收数据,B负责处理数据,C负责写数据到磁盘。请问用什么样的同步方法,可以让3个线程顺序执行。
即总是A先执行,然后B,然后C。
[/Quote]
这个不难吧,BC先用WaitForSingleObject等待,A做完了发信号量,让B执行,B完了发信号量让C执行。
Coder_Y_Jao
2009-10-08
打赏
举报
回复
前一个线程函数返回前CREATEEVENT
glacier3d
2009-10-08
打赏
举报
回复
说错了,是生产者/消费者模型
glacier3d
2009-10-08
打赏
举报
回复
应该还是读写者模型,AB之间建立一个读写者模型,BC之间也建立一个,同步用信号量之类
让
线程
按
指定
顺序
执行
的8种方法
本文使用了8种方法实现在多
线程
中让
线程
按
顺序
运行的方法,涉及到多
线程
中许多常用的方法,不止为了知道如何让
线程
按
顺序
运行,更是让读者对多
线程
的使用有更深刻的了解。使用的方法如下: [1] 使用
线程
的join方法 ...
让多
线程
按
顺序
执行
的几种方法
在子
线程
中通过join()方法
指定
顺序
在主
线程
中通过join()方法
指定
顺序
通过倒数计时器CountDownLatch实现 通过创建单一化
线程
池newSingleThreadExecutor()实现 在子
线程
中通过join()方法
指定
顺序
通过join()...
让
线程
按
顺序
执行
8种方法
本文使用了7中方法实现在多
线程
中让
线程
按
顺序
运行的方法,涉及到多
线程
中许多常用的方法,不止为了知道如何让
线程
按
顺序
运行,更是让读者对多
线程
的使用有更深刻的了解。 使用的方法如下: [1] 使用
线程
的join方法 ...
Java中如何让
线程
按照自己
指定
的
顺序
执行
?
我们在日常的多
线程
开发中,可能有时会想让每个
线程
都按照我们
指定
的
顺序
来运行,而不是让CPU随机调度,这样可能会让我们在日常的开发工作中带来不必要的麻烦。既然有了这个需求,也就引入了本文的标题,让
线程
按照...
如何让多
线程
按
顺序
执行
方法一:在子
线程
中通过join()方法
指定
顺序
通过join()方法使当前
线程
“阻塞”,等待
指定
线程
执行
完毕后继续
执行
,比如在
线程
thread2中,加上一句thread1.join(),其意义在于,当前
线程
2运行到此行代码时会进入阻塞...
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章