我正在做一个睡觉的理发师。所以,首先我创建了 10 个客户线程,彼此之间有 2 秒的“睡眠”。现在,第一个客户剪头发,意味着睡 5 秒。我们有等待空间来跟踪线程,而我们只有 3 个线程。
如果一个客户线程正在剪头发,并且有 3 个后续线程在队列中,则此后创建的其他客户线程必须停止,除非在 3 个等候室中有可用位置。
当第一个客户被切掉时,第二个客户开始切入,因此有 2 个线程在队列中,只有在这种情况下,才有一个线程可以加入等待。
要完成所有这些任务,有人可以简短地告诉我,在哪里使用睡眠、中断和加入。特别是如何让线程等待其他线程完成,以及如何检测当前有多少线程正在等待/休眠?