使用全局计数器,我们可以在多线程应用程序中使用互斥(用于拥有资源)和条件变量(用于信令其他线程)来逐个打印奇数和偶数。
但是如何在不使用全球计数器的情况下实现相同目标?
答案 0 :(得分:0)
但是如何在不使用全局计数器的情况下实现相同目标?
为什么需要全球反击?等待并发信号通知另一个线程的方法是所有。
void odd(void *ignore)
{
for (int j = 1; ; j += 1) {
printf("%d\n", j);
// signal other thread
// wait for it to signal me
}
}
void even(void *ignore)
{
for (int j = 2; ; j += 2) {
// wait for other thread to signal me
printf("%d\n", j);
// signal other thread
}
}