日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线程与进程的异同

發布時間:2024/9/30 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线程与进程的异同 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很簡單經典的題目,但是要回答全面,還是得好好準備


參考:http://www.ezloo.com/2008/05/process_and_thread.html

1、相同點:
(a)二者都具有ID,一組寄存器,狀態,優先級以及所要遵循的調度策略。
(b) 每個進程都有一個進程控制塊,線程也擁有一個線程控制塊。
(c) 線程共享父進程中的資源,子進程也在剛創建之后共享父進程的資源,并將這些內存設置為只讀。直到父,子進程一方嘗試寫這些區域,則內核才為需要修改的那片內存拷貝副本;線程和子進程獨立于它們的父進程,競爭使用處理器資源;線程和子進程的創建者可以在線程和子進程上實行某些控制,比如,創建者可以取消、掛起、繼續和修改線程和子進程的優先級;線程和子進程可以改變其屬性并創建新的資源。
2、不同點:
(a) 線程是進程的一部分, 一個進程中可以包含多個線程,一個沒有線程的進程是可以被看作單線程的,如果一個進程內擁有多個進程,進程的執行過程不是一條線(線程)的,而是多條線(線程)共同完成的。
(b) 系統開銷:啟動一個線程所花費的空間遠遠小于啟動一個進程所花費的空間,而且,線程間彼此切換所需的時間也遠遠小于進程間切換所需要的時間。 (c)資源管理: 系統在運行的時候會為每個進程分配不同的地址空間,但是不會為線程分配獨立的地址空間(線程所使用的資源是它所屬的進程的資源),線程組只能共享資源。對不同進程來 說,它們具有獨立的數據空間,要進行數據的傳遞只能通過通信的方式進行,這種方式不僅費時,而且很不方便。而一個線程的數據可以直接為其他線程所用,這不 僅快捷,而且方便。進程間通信其實是指分屬于不同進程的線程之間的通訊,所以進程間的通信方法同樣適用于線程間的通信。但對應歸于同一進程的不同線程來說,使用全局變量進行通信效率會更高。
(d) 與進程的控制表PCB相似,線程也有自己的控制表TCB,但是TCB中所保存的線程狀態比PCB表中少多了。
進程有獨立的地址空間,一個進程崩潰后,在保護模式下不會對其它進程產生影響,而線程只是一個進程中的不同執行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較大,效率要差一些


總結

以上是生活随笔為你收集整理的线程与进程的异同的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。