我對java多進程多線程的淺顯理解


linux內核調度算法--CPU時間片如何分配:

  http://blog.csdn.net/russell_tao/article/details/7103012(轉載)  ,通過該文章我們知道了進程是有優先級的

windows的任務調度機制:

  http://www.cnblogs.com/wonderKK/archive/2012/06/10/2543978.html(轉載),該文章講Windows的任務調度主要以線程為單位進行  

我們用java開發的軟件一般都是部署在linux操作系統上,因此主要按linux的內核調度方式來理解。也就是說每個進程都有自己的優先級,而和其中的線程的優先級和數量無關

 

進程:就是正在運行的程序的實例,是資源分配的基本單位。(通過任務管理器可以查看進程,一個程序可以啟動多個進程,比如你可以用qq程序登陸多個qq賬號,所以我理解為是程序的實例)

多進程:就是多個程序實例同時運行(同時不夠嚴謹,可能還與電腦核數有關)

線程:運行在進程當中的運行單元,線程與資源分配無關,它屬於某一個進程,並與進程內的其他線程一起共享進程的資源。

多線程:進程中存在多個相互獨立或相互有協作關系的運行單元就是多線程(比如音樂播放器,一邊下載音樂,一邊播放音樂)

 

進程和線程的區別:

1)地址空間和其它資源(如打開文件):進程間相互獨立,同一進程的各線程間共享。某進程內的線程在其它進程不可見。
2)通信:進程間通信IPC,線程間可以直接讀寫進程數據段(如全局變量)來進行通信——需要進程同步和互斥手段的輔助,以保證數據的一致性。
 
上面的內容算是一個總體上的初步認識線程,下面再深入一些認識java中的多線程
服務器中的線程模型  https://segmentfault.com/q/1010000002998038 
java中一些用到多線程的場景  http://blog.csdn.net/u012661010/article/details/76696309
 
(參考 百度百科,《java多線程編程深入理解》)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM