1

线程有点问题,请告诉我如何解决或者至少在哪个方向寻找,找了很长时间,但到目前为止没有成功......问题是:有3个线程,他们可以以任意顺序运行 (321;213;123...)。在我们不会运行的任何顺序流程中,它们都需要按照 1、2、3 的顺序运行。为此,请使用带有 ONE 互斥锁的线程同步。提前谢谢你。

4

1 回答 1

1

使用互斥锁来保护全局整数 iThread。初始化iThread 1.创建线程,为每个线程传入一个id:1,2,3。

在线程进程中,锁定互斥锁以检查 iThread。如果 iThread != 线程 id,则按条件等待。

if iThread = thread id: 解锁互斥锁,在threadproc中执行工作;在线程 proc 结束时:锁定互斥锁、++iThread 和信号条件,解锁互斥锁。

类似的东西。还有一百万种其他方式。

于 2012-05-17T02:51:45.440 回答