如何使生产者和消费者线程 运行 交错

how to make producer and consumer threads run interleaving

我认为如果我使用 pthread 并生成两个线程,它们会 运行 交错,这意味着执行将类似于:

producer

producer

consumer

consumer

producer

consumer

//both producer and consumer finish

然而,我现在得到的是

producer

producer

producer 

//producer finished

consumer

consumer

consumer

//consumer finished

我想知道这是否应该发生,或者看起来我做错了什么?如何实现想要的执行顺序?

线程的调度独立于每个 other.Unless 你使用一种机制来交错它们(互斥锁)。