2016-05-28 998 views
1

阻塞的線程是否會導致進程阻塞?爲什麼和如何?感謝所有專家的回答。阻塞的線程是否會導致進程阻塞?爲什麼和如何?

+1

一個進程永遠不能被「阻塞」。它是一個操作系統對象,一個可執行代碼和數據的容器。代碼由線程執行。如果處理用戶界面的線程發生死鎖或者離開樹林做別的事情而不是照顧用戶界面,那麼您很可能會斷定「進程被阻止」。 –

+1

我們用於進程的術語通常是「掛起」而不是「阻塞」。進程可能會掛起,因爲進程中的所有線程都被阻塞,例如死鎖,但是它也可能因爲線程進入無限循環而掛起,或者存在更復雜的涉及多個線程的永久重複。 –

回答

2

線程是通過進程代碼執行的流程,具有自己的程序計數器,系統寄存器和堆棧。線程也被稱爲輕量級進程。線程提供了一種通過並行性來提高應用程序性能的方法。線程代表了一種通過減少開銷線程來提高操作系統性能的軟件方法,相當於一個經典過程。

每個線程只屬於一個進程,進程外不存在線程。 每個線程代表一個單獨的控制流程。線程已成功用於實現網絡服務器和Web服務器。它們還爲並行執行共享內存多處理器上的應用程序提供了一個合適的基礎。

所以,正如你可能已經猜到的那樣,不!線程無法阻止進程。

3

進程無法被阻止,因爲「阻塞」的概念只適用於執行線程。如果進程只有一個線程並且該線程被阻塞,那麼可以說阻塞進程的唯一有意義的含義是。