2017-09-14 30 views
-1

-Interview問題線程相對於進程有什麼缺點?

有人問我的thread的缺點。什麼是我們不應該使用thread改用process場景?

我也沒有想太多,除了在某些情況下無效的內存訪問

+0

可能重複的[進程和線程之間有什麼區別?](https://stackoverflow.com/q/200469/62576) –

+0

@KenWhite這篇文章只包含線程的積極點。 – roottraveller

+0

線程確實有很多優點。只是很多程序員不知道如何正確編寫線程代碼。死鎖和種族錯誤很難診斷和修復。單線程進程的問題要少得多,它會隔離內存,以便另一個進程中的線程不會破壞任何內容。這種隔離也使得很難讓流程合作,但是做一些事情往往會導致很難診斷和修復的錯誤。 –

回答

1

線程,通過相同的過程產生了,所有共享相同的存儲器。進程都在自己的內存環境中運行。在Linux下(我不知道Windows下的行爲是什麼樣子),一個新產生的子進程通常會收到父進程的內存上下文的某個部分的副本,因此在運行時會更昂貴,創建時CPU時間/ MMU明智。另外上下文切換 - (關閉)從或向CPU加載過程(出現這種情況,當一個進程或線程無關,並被推到隊列贊成過程或實際工作線程) - 可能是更昂貴的一個過程。因爲他們的記憶是從他們的兄弟姐妹進程的內存隔離

在另一方面過程可能會更安全。

相關問題