使用Mutex同步特定队列中的三个流

时间:2012-05-16 20:17:49

标签: c# multithreading synchronization mutex

线程有点问题,请告诉我如何解决它或至少在哪个方向寻找,寻找很长时间,但到目前为止还没有成功......这里有问题:有3个线程,他们可以按任何顺序运行(321; 213; 123 ...)。无论我们不运行任何订单流,他们都需要按顺序1,2,3进行计算。为此,请使用与一个互斥锁的线程同步。提前谢谢你。

1 个答案:

答案 0 :(得分:1)

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

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

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

这样的事情。还有其他一百万种方式。