如何使生产者和消费者线程 运行 交错
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 你使用一种机制来交错它们(互斥锁)。
我认为如果我使用 pthread 并生成两个线程,它们会 运行 交错,这意味着执行将类似于:
producer
producer
consumer
consumer
producer
consumer
//both producer and consumer finish
然而,我现在得到的是
producer
producer
producer
//producer finished
consumer
consumer
consumer
//consumer finished
我想知道这是否应该发生,或者看起来我做错了什么?如何实现想要的执行顺序?
线程的调度独立于每个 other.Unless 你使用一种机制来交错它们(互斥锁)。