(1)在多线程进程中,如果一个线程忙于I / O,整个进程是否会被阻塞?
(2)使用互斥锁或二进制信号量哪个更好?我何时应该使用互斥锁?什么时候应该使用二进制信号量?
答案 0 :(得分:1)
1)。好吧,一次只有一个线程在多线程应用程序中分配CPU。如果你说你的线程经常忙于I / O,那么实际上可能会发生所有其他线程在队列中等待将CPU分配给它们。它取决于使用的CPU allocation algorithm
。就像线程使用Time-Sharing
算法一样,当然在完成时间时,当前线程将被发送到队列的后面。
2)。看看这篇文章: - Difference between binary semaphore and mutex
答案 1 :(得分:0)
1)在SMP环境中,多个线程可以并行运行(在不同的cpu上)。在单CPU环境中,一次只能运行一个线程。