1,線程在程序中是獨立的,並發的執行流,但是,與分隔的進程相比,進程中的線程之間的隔離程度要小。它們共享內存,文件句柄和其他每個進程應有的狀態。
2,線程比進程具有更高的性能,這是由於同一個進程中的線程都有共性:多個線程將共享同一個進程虛擬空間。線程共享的環境包括:進程代碼段,進程的公有數據等。
利用這些共享的數據等,線程很容易實現相互之間的通信。
3,當操作系統創建一個進程時,必須為進程分配獨立的內存空間,並分配大量相關資源:但創建一個線程則簡單很多,因此使用多線程來實現並發比使用多進程實現並發
的性能要高得多。
4,總結起來,使用多線程編程包含如下幾個優點:
(1)進程間不能共享內存,但線程之間可以共享內存非常容易。
(2)系統創建進程需要為該進程重新分配系統資源,但創建線程則代價小的多,因此使用多線程來實現多任務並發比多進程的效率高。
(3)Java語言內置多線程功能支持,而不是單純地作為底層操作系統的調度方式,從而簡化了Java的多線程編程。
