是否可以在多线程应用程序中不使用全局计数器来打印奇数和偶数

时间:2017-12-01 10:15:04

标签: multithreading pthreads global-variables conditional mutex

使用全局计数器,我们可以在多线程应用程序中使用互斥(用于拥有资源)和条件变量(用于信令其他线程)来逐个打印奇数和偶数。

但是如何在不使用全球计数器的情况下实现相同目标?

1 个答案:

答案 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
  }
}