同步线程:实现订单

时间:2013-10-24 00:36:26

标签: multithreading synchronization pthreads posix semaphore

我有3个帖子。所有人都同等重视。每个都必须打印“我是线程i”,其中i对应于线程号。如何以输出应该的方式同步它们 我是主题1 我是主题2 我是主题3

如果每个线程的优先级不同,这很容易实现,但如果我想保持相同的优先级,我该如何实现呢?

我是否可以使用任何操作系统原语或任何POSIX机制来实现此目的?

1 个答案:

答案 0 :(得分:1)

我认为按照你想要的特定顺序执行线程更多是从学术/学习的角度来看,否则它就会破坏多线程编程的目的。

实现它的方法之一是使用pthread库提供的条件变量。

pthread_cond_wait()会导致调用线程阻塞某个变量值,一旦达到某个值,就可以使用pthread_cond_signal()

'唤醒'这个被阻塞的线程

有关使用pthread条件变量显示的描述和代码的简单示例,请参阅this