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)地址空間和其它資源(如打開文件):進程間相互獨立,同一進程的各線程間共享。某進程內的線程在其它進程不可見。
上面的內容算是一個總體上的初步認識線程,下面再深入一些認識java中的多線程
服務器中的線程模型 https://segmentfault.com/q/1010000002998038
java中一些用到多線程的場景 http://blog.csdn.net/u012661010/article/details/76696309
(參考 百度百科,《java多線程編程深入理解》)