使用互斥锁同步特定队列中的三个流
本文关键字:三个 队列 同步 | 更新日期: 2023-09-27 18:34:36
线程有一点问题,请告诉我如何解决,或者至少在哪个方向寻找,寻找了很长时间,但到目前为止没有成功......问题是:有 3 个线程,它们可以按任何顺序运行(321;213;123...(。无论我们怎样的顺序流,它们都需要按照顺序 1、2、3 计算出来。为此,请使用具有一个互斥锁的线程同步。提前谢谢。
使用互斥锁来保护全局整数 iThread。 将 iThread 初始化为 1。创建线程,为每个线程传入一个 ID:1,2,3。
在线程进程中,锁定互斥锁以检查 iThread。 如果 iThread != 线程 id,则等待条件。
如果 iThread = 线程 ID:解锁互斥锁,则在 threadproc 中执行工作;在线程进程结束时:锁定互斥锁、++iThread 和信号条件,解锁互斥锁。
类似的东西。 还有一百万种其他方法。