社区
进程/线程/DLL
帖子详情
如何让线程按指定顺序执行
gxx2019
2009-10-08 08:04:11
有3个线程,A负责接收数据,B负责处理数据,C负责写数据到磁盘。请问用什么样的同步方法,可以让3个线程顺序执行。
即总是A先执行,然后B,然后C。
...全文
271
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方法 [2] 使用主
线程
的join方法 [3] 使用
线程
的wait方法 [4] 使用
线程
的
线程
池方法 [5] 使用
线程
的Condition(条件变量)方法 [6] 使用
线程
的CountDownLatch(倒计数)方法 [7] 使用
线程
的CyclicBarrier(回环栅栏)方法 [8] 使用
线程
让多
线程
按
顺序
执行
的几种方法
文章介绍4种方法,简单易懂,通过4个demo抛砖引玉。 目录 在子
线程
中通过join()方法
指定
顺序
在主
线程
中通过join()方法
指定
顺序
通过倒数计时器CountDownLatch实现 通过创建单一化
线程
池newSingleThreadExecutor()实现 在子
线程
中通过join()方法
指定
顺序
通过join()方法使当前
线程
“阻塞”,等待
指定
线程
执行
完毕后继续
执行
。举例:在...
让
线程
按
顺序
执行
8种方法
转自:https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了7中方法实现在多
线程
中让
线程
按
顺序
运行的方法,涉及到多
线程
中许多常用的方法,不止为了知道如何让
线程
按
顺序
运行,更是让读者对多
线程
的使用有更深刻的了解。 使用的方法如下: [1] 使用
线程
的join方法 [2] 使用主
线程
的join方法 [3] 使用
线程
的wait方法 [4] 使用
线程
的
线程
池方法 [5] 使用
线程
的Condition(条件变量)方法 [6] 使用
线程
的CountDow
线程
按
顺序
执行
8种方法
一.前言 本文使用了8中方法实现在多
线程
中让
线程
按
顺序
运行的方法,涉及到多
线程
中许多常用的方法,不止为了知道如何让
线程
按
顺序
运行,更是让读者对多
线程
的使用有更深刻的了解。 使用的方法如下: 使用
线程
的join方法 使用主
线程
的join方法 使用
线程
的wait方法 使用
线程
的
线程
池方法 使用
线程
的Condition(条件变量)方法 使用
线程
的CountDownLatch(倒计数)方法 使用
线程
的CyclicBarrier(回环栅栏)方法 使用
线程
的Semaphore(信号量)方法 二.实现
Java中如何让
线程
按照自己
指定
的
顺序
执行
?
我们在日常的多
线程
开发中,可能有时会想让每个
线程
都按照我们
指定
的
顺序
来运行,而不是让CPU随机调度,这样可能会让我们在日常的开发工作中带来不必要的麻烦。既然有了这个需求,也就引入了本文的标题,让
线程
按照自己
指定
的
顺序
来运行。 有兴趣的同学可以猜想下列代码可能运行的结果: 按照正常的理解思路,上面代码的
执行
顺序
依次应该为:t1 → t2 → t3,而实际效果则不是理想的状态。 下图为运行效...
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章