當一個線程被阻塞時,這個線程是否需要阻塞同一進程或其進程中的任何其他線程?每次都發生這種情況嗎?當一個線程被阻塞時,可能導致在同一個進程或整個進程中阻塞另一個線程?
0
A
回答
1
當然。如果情況並非如此,我們就不必應付僵局。該方案是被阻塞的線程獲取了另一個線程試圖獲取的同步對象。它會阻止。
好的,我現在得到問題了。一般來說,是的。其他一些代碼需要運行以釋放阻塞條件。非顯而易見的情況是在線程在I/O上被阻塞時在驅動程序中運行代碼的內核線程。或者線程調度程序,以防線程因等待獲取處理器或正在等待非無限超時而被阻塞。
1
是的,這可能發生在任何同步操作中,其中一個線程需要等待另一個線程執行某些操作。例如,如果線程A持有一個鎖,然後在內核中執行長時間的阻塞操作,則另一個線程B將在嘗試獲取該鎖時阻塞。線程B將被阻塞,至少直到線程A的阻塞操作完成。
在極端情況下,線程等待對方將導致Deadlock
附加澄清:
版面中的彼此獨立的進程中運行。一個線程阻塞不一定會阻塞其他線程。這是首先使用線程的主要原因之一。
-1
當一個線程被阻塞,這也是塊的所有線程的進程中
相關問題
- 1. 線程只阻塞第一個線程
- 2. 爲什麼啓動一個線程被另一個線程阻塞?
- 3. 線程阻塞整個程序
- 4. 爲什麼NSTimer在另一個線程運行時被阻塞?
- 5. python爲什麼在一個線程中真正阻塞另一個線程
- 6. 在另一個線程中調用Thread.sleep()時UI線程被阻塞
- 7. C#ThreadPool一個線程阻塞其他?
- 8. Python線程阻塞進一步執行
- 9. 如果一個線程忙於I/O,將會阻塞整個進程
- 10. 一個Node.js線程阻塞另一個嗎?
- 11. 從另一個線程返回一個值。沒有阻塞主線程
- 12. 當一個線程被阻塞時,其他線程會發生什麼?
- 13. log4net的導致線程被阻塞
- 14. 使用TcpListener.AcceptSocket();在一個單獨的線程導致線程阻塞?
- 15. 阻塞的線程是否會導致進程阻塞?爲什麼和如何?
- 16. std :: launch :: async被阻塞,像一個同步進程
- 17. 可以阻塞的java線程的方法由另一個線程執行?
- 18. performSelector:onThread:當目標線程被阻塞時
- 19. 阻止阻塞的線程阻塞
- 20. UI線程被阻塞
- 21. Netty線程被阻塞
- 22. 找出爲什麼一個線程被阻塞在C#
- 23. 如果沒有線程阻塞信號,並且一個線程在`sigwait()`中,是否有保證被阻塞的線程會接收下一個信號?
- 24. 如何讓一個進程被阻塞,直到另一個進程將一行寫入文件?
- 25. MessageBeep線程阻塞
- 26. 阻塞線程 - Java
- 27. 非阻塞線程
- 28. Java線程阻塞
- 29. 如何避免線程進入阻塞狀態如果協程被阻塞
- 30. 當一個線程在wait()上阻塞時被中斷會發生什麼?
原諒我的錯expression..i didnt意味着如果出現這種情況,或者如果有一個possibility.i想問:當一個線程被阻塞是否有必要讓這個線程阻塞同一進程或其進程中的其他線程?每次都發生這種情況嗎? – Dchris 2011-02-09 16:06:11
@user:你可以編輯你的問題來包含這個說明嗎? – Karmastan 2011-02-09 16:11:52