2011-02-09 777 views

回答

1

当然。如果情况并非如此,我们就不必应付僵局。该方案是被阻塞的线程获取了另一个线程试图获取的同步对象。它会阻止。

好的,我现在得到问题了。一般来说,是的。其他一些代码需要运行以释放阻塞条件。非显而易见的情况是在线程在I/O上被阻塞时在驱动程序中运行代码的内核线程。或者线程调度程序,以防线程因等待获取处理器或正在等待非无限超时而被阻塞。

+0

原谅我的错expression..i didnt意味着如果出现这种情况,或者如果有一个possibility.i想问:当一个线程被阻塞是否有必要让这个线程阻塞同一进程或其进程中的其他线程?每次都发生这种情况吗? – Dchris 2011-02-09 16:06:11

+0

@user:你可以编辑你的问题来包含这个说明吗? – Karmastan 2011-02-09 16:11:52

1

是的,这可能发生在任何同步操作中,其中一个线程需要等待另一个线程执行某些操作。例如,如果线程A持有一个锁,然后在内核中执行长时间的阻塞操作,则另一个线程B将在尝试获取该锁时阻塞。线程B将被阻塞,至少直到线程A的阻塞操作完成。

在极端情况下,线程等待对方将导致Deadlock

附加澄清

版面中的彼此独立的进程中运行。一个线程阻塞不一定会阻塞其他线程。这是首先使用线程的主要原因之一。

-1

当一个线程被阻塞,这也是块的所有线程的进程中

相关问题