濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳細介紹 進程、線程和協(xié)程的區(qū)別

詳細介紹 進程、線程和協(xié)程的區(qū)別

熱門標簽:地圖標注審核工作怎么樣注冊 無錫電銷機器人銷售 招聘信息 揭陽外呼系統(tǒng)公司 去哪里辦卡 鄭州中國移動400電話申請 熱血傳奇沃瑪森林地圖標注 福建ai電銷機器人加盟公司 地圖標注植物名稱 南召400電話辦理資費

詳解 進程、線程和協(xié)程的區(qū)別

首先,給出“進程、線程和協(xié)程”的特點:

  • 進程:擁有自己獨立的堆和棧,既不共享堆,也不共享棧,進程由操作系統(tǒng)調度;
  • 線程:擁有自己獨立的棧和共享的堆,共享堆,不共享棧,標準線程由操作系統(tǒng)調度;
  • 協(xié)程:擁有自己獨立的棧和共享的堆,共享堆,不共享棧,協(xié)程由程序員在協(xié)程的代碼里顯示調度。

接下來,以一個形象的例子,進一步講述“進程、線程和協(xié)程”三者之間的區(qū)別:

假設有一個單核的操作系統(tǒng),系統(tǒng)上沒有其它的程序需要運行,現(xiàn)有兩個線程 A 和 B,A 和 B 在單獨運行時都需要 10 秒來完成自己的任務,而且任務都是運算操作,線程 A 和 B 之間沒有競爭和共享數(shù)據(jù)的問題?,F(xiàn)在讓 A 和 B 兩個線程并行,則操作系統(tǒng)會不停的在 A 和 B 兩個線程之間切換,達到一種偽并行的效果。

如果操作系統(tǒng)切換的頻率是每秒一次,切換的成本是 0.1 秒(主要是棧切換),則總共需要 20 + 19 * 0.1 = 21.9 秒;如果使用協(xié)程的方式,可以先運行協(xié)程 A,A 結束的時候讓位給協(xié)程 B,只發(fā)生一次切換,則總共需要 20 + 1 * 0.1 = 20.1 秒。如果操作系統(tǒng)是雙核的,而且線程是標準線程,那么線程 A 和 B 可以達到真的并行,則總時間為 10 秒;而協(xié)程的方式仍然需要 20.1 秒的時間。

感謝閱讀,希望能 幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • python并發(fā)編程之多進程、多線程、異步和協(xié)程詳解
  • python線程、進程和協(xié)程詳解
  • 深入淺析python中的多進程、多線程、協(xié)程
  • 簡述Python中的進程、線程、協(xié)程

標簽:南昌 景德鎮(zhèn) 文山 鹽城 黔南 宣城 東莞 桂林

巨人網(wǎng)絡通訊聲明:本文標題《詳細介紹 進程、線程和協(xié)程的區(qū)別》,本文關鍵詞  詳細,介紹,進程,線程,和,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳細介紹 進程、線程和協(xié)程的區(qū)別》相關的同類信息!
  • 本頁收集關于詳細介紹 進程、線程和協(xié)程的區(qū)別的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    汨罗市| 山阴县| 叙永县| 纳雍县| 元阳县| 当涂县| 冷水江市| 周宁县| 顺义区| 马边| 镇沅| 大邑县| 广丰县| 高碑店市| 甘孜县| 安泽县| 福鼎市| 美姑县| 元谋县| 深圳市| 布尔津县| 辽宁省| 台前县| 安丘市| 得荣县| 德令哈市| 宿迁市| 舒兰市| 凤台县| 太湖县| 建宁县| 黔南| 石河子市| 宜川县| 恩施市| 五河县| 威海市| 东港市| 徐闻县| 沾益县| 河津市|