1. 程式人生 > >java面試題14--程序和執行緒的差別

java面試題14--程序和執行緒的差別

[美國某著名軟體公司2005年面試題]

答案:
* 程序是程式的一次執行。
* 執行緒可以理解為程序中執行的一段程式片段。 在一個多工環境中下面的概念可以幫助我們理解兩者間的差別。

* 程序間是獨立的,這表現在記憶體空間、 上下文環境上;執行緒執行在程序空間內。
* 一般來講(不使用特殊技術),程序無法突破程序邊界存取其他程序內的儲存空間;而執行緒由於處於程序空間內,所以同一程序所產生的執行緒共享同一記憶體空間。

* 同一程序中的兩段程式碼不能夠同時執行,除非引入執行緒。
* 執行緒是屬於程序的,當程序退出時該程序所產生的執行緒都會被強制退出並清除。 執行緒佔用的資源要少於程序所佔用的資源。 程序和執行緒都可以有優先順序。
程序間可以通過IPC通訊,但執行緒不可以。