進程與線程
1、進程
百度百科解釋
進程(Process)是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執行實體;在當代面向線程設計的計算機結構中,進程是線程的容器。程序是指令、數據及其組織形式的描述,進程是程序的實體。
進程
程序由指令和數據組成,指令運行在CPU中,數據讀寫需要使用到內存,此外還需要磁盤和網絡等設備。進程就是用來加載指令、管理內存、管理IO資源的。進程可以被視為程序的一個實例,大部分程序可以同時運行多個實例進程(瀏覽器、IDEA等),部分程序只能啟動一個實例進程(QQ、微信等)。
2、線程
百度百科解釋
線程(英語:thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的任務。在Unix System V及SunOS中也被稱為輕量進程(lightweight processes),但輕量進程更多指內核線程(kernel thread),而把用戶線程(user thread)稱為線程。
線程
一個進程中有多個線程,進程可以看作線程的容器。一個線程就是一個指令流,將指令流中的一條條指令以一定的順序交給CPU執行。
3、進程和線程二者關系
進程之間基本相互獨立,線程存在進程中,是進程的一個子集
進程擁有的共享資源,如內存等,供其內的線程共享
4、通信方式
進程通信方式
進程的通信方式較為復雜,同一臺計算機的進程通信稱為IPC(Inter-process communication),不同計算機之間的進程通信,需要通過網絡約定協議進行通信。
線程通信方式
線程通信方式比較簡單,它們可以共享進程內的內存,因此可以訪問相同內存進行通信。
Java 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。