2011-02-09 15 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

當一個線程被阻塞,這也是塊的所有線程的進程中

相關問題