進程與線程
1、什么是進程、線程,有什么區別?
進程是資源(CPU、內存等)分配的基本單位,線程是 CPU 調度和分配的基本單位(程序執行的最小單位)。如果 CPU 是單核,同一時間只有一個進程在執行,多核 CPU 可以同一時間點有多個進程在執行。
2、多進程、多線程的優缺點
一個進程由進程控制塊、數據段、代碼段組成,進程本身不可以運行程序,而是像一個容器一樣,先創建出一個主線程,分配給主線程一定的系統資源,這時候就可以在主線程開始實現各種功能。
當我們需要實現更復雜的功能時,可以在主線程里創建多個子線程,多個線程在同一個進程里,利用這個進程所擁有的系統資源合作完成某些功能。
優缺點:
一個進程死了不影響其他進程,一個線程崩潰很可能影響到它本身所處的整個進程。
創建多進程的系統花銷大于創建多線程。
多進程通訊因為需要跨越進程邊界,不適合大量數據的傳送。多線程無需跨越進程邊界,適合大量數據的傳送。
3、什么時候用進程,什么時候用線程
創建和銷毀較頻繁使用線程,因為創建進程花銷大。
需要大量數據傳送使用線程,因為多線程切換速度快,不需要跨越進程邊界。
安全穩定選進程;快速頻繁選線程;
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
cpu
+關注
關注
68文章
11277瀏覽量
224934 -
Linux
+關注
關注
88文章
11758瀏覽量
219004 -
線程
+關注
關注
0文章
509瀏覽量
20825
發布評論請先 登錄
相關推薦
熱點推薦
線程、進程、程序的區別
,數據棧以及其它記錄其運行軌跡的輔助數據。操作系統管理在其上運行的所有進程,并為這些進程公平地分配時間。不過各個進程有自己的內存空間,數據棧等,所以只能使用
發表于 03-23 13:09
嵌入式的進程與線程具有哪些優缺點
:①進程擁有自己的PID和變量,獨立的內存單元進行調度,執行(幾乎)獨立于父進程。②新線程擁有自己獨立的棧(eg.局部變量),但與創建者共享全局變量、文件描述符、信號句柄、當前目錄狀態。③獨立
發表于 10-28 09:24
進程和線程的區別是什么
有了提前批的失敗經驗,接下來不斷的總結鞏固和修正錯誤,這次發揮要比上次要好很多。一面(電話面)自我介紹進程和線程區別線程同步和通信鎖機制以及死鎖條件和預防TCP/IP協議的一些基礎知識
發表于 12-23 07:28
進程和線程分別是什么,它們的區別是什么
程和線程的區別是什么?有什么關系?相信大家對于進程都很熟悉了吧,而線程相對于進程而言,是一個更加接近于執行體的概念,為了讓大家更好的了解
發表于 03-24 17:26
?9707次閱讀
mcu線程和進程的區別是什么
MCU線程和進程是嵌入式系統中常見的并行執行的概念,它們之間有許多區別,包括線程與進程的定義、資源管理、通信機制、執行方式等等。下面將詳細介
進程和線程的區別以及優缺點
評論