chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

進程與線程的區(qū)別和聯(lián)系

454398 ? 來源:alpha007 ? 作者:alpha007 ? 2022-12-05 18:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

進程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。

最近,我讀到一篇材料,發(fā)現(xiàn)有一個很好的類比,可以把它們解釋地清晰易懂。

1、計算機的核心是 CPU,它承擔了所有的計算任務。它就像一座工廠,時刻在運行。

2、假定工廠的電力有限,一次只能供給一個車間使用。也就是說,一個車間開工的時候,其他車間都必須停工。背后的含義就是,單個 CPU 一次只能運行一個任務。

3、進程就好比工廠的車間,它代表 CPU 所能處理的單個任務。任一時刻,CPU 總是運行一個進程,其他進程處于非運行狀態(tài)。

4、一個車間里,可以有很多工人。他們協(xié)同完成一個任務。

5、線程就好比車間里的工人。一個進程可以包括多個線程。

6、車間的空間是工人們共享的,比如許多房間是每個工人都可以進出的。這象征一個進程的內(nèi)存空間是共享的,每個線程都可以使用這些共享內(nèi)存。

7、可是,每間房間的大小不同,有些房間最多只能容納一個人,比如廁所。里面有人的時候,其他人就不能進去了。這代表一個線程使用某些共享內(nèi)存時,其他線程必須等它結束,才能使用這一塊內(nèi)存。

8、一個防止他人進入的簡單方法,就是門口加一把鎖。先到的人鎖上門,后到的人看到上鎖,就在門口排隊,等鎖打開再進去。這就叫“互斥鎖”(Mutual exclusion,縮寫 Mutex),防止多個線程同時讀寫某一塊內(nèi)存區(qū)域。

9、還有些房間,可以同時容納 n 個人,比如廚房。也就是說,如果人數(shù)大于 n,多出來的人只能在外面等著。這好比某些內(nèi)存區(qū)域,只能供給固定數(shù)目的線程使用。

10、這時的解決方法,就是在門口掛 n 把鑰匙。進去的人就取一把鑰匙,出來時再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了,就知道必須在門口排隊等著了。這種做法叫做“信號量”(Semaphore),用來保證多個線程不會互相沖突。

不難看出,mutex 是 semaphore 的一種特殊情況(n=1 時)。也就是說,完全可以用后者替代前者。但是,因為 mutex 較為簡單,且效率高,所以在必須保證資源獨占的情況下,還是采用這種設計。

11、操作系統(tǒng)的設計,因此可以歸結為三點:

(1)以多進程形式,允許多個任務同時運行;

(2)以多線程形式,允許單個任務分成不同的部分運行;

(3)提供協(xié)調(diào)機制,一方面防止進程之間和線程之間產(chǎn)生沖突,另一方面允許進程之間和線程之間共享資源。

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 線程
    +關注

    關注

    0

    文章

    508

    瀏覽量

    20651
  • 進程
    +關注

    關注

    0

    文章

    208

    瀏覽量

    14448
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    數(shù)字化與信息化有什么區(qū)別聯(lián)系

    數(shù)字化與信息化是緊密相關但又有區(qū)別的兩個概念,它們在推動社會和經(jīng)濟發(fā)展中扮演著不同角色。以下從定義、核心目標、技術基礎、應用范圍、實施路徑及相互聯(lián)系六個方面進行詳細分析: 一、定義差異 數(shù)字化
    的頭像 發(fā)表于 10-11 16:48 ?389次閱讀
    數(shù)字化與信息化有什么<b class='flag-5'>區(qū)別</b>和<b class='flag-5'>聯(lián)系</b>

    線程與多處理有何區(qū)別

    多處理也稱為進程,進程是一個在自己的內(nèi)存空間中運行的獨立程序。
    的頭像 發(fā)表于 09-16 14:21 ?253次閱讀

    【HZ-T536開發(fā)板免費體驗】—— linux創(chuàng)建線程

    線程進程 一個進程指的是一個正在執(zhí)行的應用程序,而線程的功能是執(zhí)行應用程序中的某個具體任務。線程具有傳統(tǒng)
    發(fā)表于 09-01 21:31

    知識分享 | 功能安全vsSOTIF:區(qū)別聯(lián)系

    )在確保出行安全方面發(fā)揮著至關重要的作用。那么,功能安全和SOTIF之間有什么區(qū)別?它們在哪些特性上又存在聯(lián)系?
    的頭像 發(fā)表于 08-06 13:53 ?1344次閱讀
    知識分享 | 功能安全vsSOTIF:<b class='flag-5'>區(qū)別</b>與<b class='flag-5'>聯(lián)系</b>

    進程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

    各位程序員朋友(和假裝懂技術的同事):如果你在面試時被問到:\"請用奶茶店類比進程、線程和協(xié)程\",而你回答:\"進程是老板,線程是員工,協(xié)程是兼職...\"
    發(fā)表于 03-26 09:27

    請問如何在Python中實現(xiàn)多線程與多進程的協(xié)作?

    大家好!我最近在開發(fā)一個Python項目時,需要同時處理多個任務,且每個任務需要不同的計算資源。我想通過多線程和多進程的組合來實現(xiàn)并發(fā),但遇到了一些問題。 具體來說,我有兩個任務,一個是I/O密集型
    發(fā)表于 03-11 06:57

    云計算和人工智能有什么區(qū)別聯(lián)系

    云計算和人工智能雖然各自具有獨特的特點和應用領域,但它們之間存在著緊密的聯(lián)系和互動。接下來,AI部落小編帶您了解云計算和人工智能的區(qū)別聯(lián)系
    的頭像 發(fā)表于 02-06 10:08 ?1003次閱讀

    SMO與SMP的區(qū)別聯(lián)系

    SMO(Social Media Optimization,社交媒體優(yōu)化)和SMP(Social Media Platform,社交媒體平臺)是社交媒體領域中兩個重要的概念。它們之間既有區(qū)別也有聯(lián)系
    的頭像 發(fā)表于 01-03 09:17 ?2260次閱讀

    云服務器與容器的區(qū)別聯(lián)系

    、輕量級應用如Web應用和API服務。盡管兩者有區(qū)別,但它們可以互補,容器技術可以在云服務器上運行以提高靈活性和效率,同時云服務器為容器提供穩(wěn)定運行環(huán)境。以下是UU云小編對云服務器與容器的區(qū)別聯(lián)系詳細介紹。
    的頭像 發(fā)表于 12-02 11:41 ?575次閱讀

    晶圓/晶粒/芯片之間的區(qū)別聯(lián)系

    本文主要介紹??????晶圓 (wafer)/晶粒 (die)/芯片 (chip)之間的區(qū)別聯(lián)系。 ? 晶圓(Wafer)——原材料和生產(chǎn)平臺?? 晶圓是半導體制造的基礎材料,通常由高純度的硅
    的頭像 發(fā)表于 11-26 11:37 ?2587次閱讀

    程序和進程區(qū)別

    比如: 開發(fā)寫的代碼我們稱為程序,那么將開發(fā)的代碼運行起來。我們稱為進程
    的頭像 發(fā)表于 11-25 16:03 ?1611次閱讀
    程序和<b class='flag-5'>進程</b>的<b class='flag-5'>區(qū)別</b>

    socket 多線程編程實現(xiàn)方法

    是指在同一個進程中運行多個線程,每個線程可以獨立執(zhí)行任務。線程共享進程的資源,如內(nèi)存空間和文件句柄,但每個
    的頭像 發(fā)表于 11-12 14:16 ?1337次閱讀

    一文搞懂Linux進程的睡眠和喚醒

    機制 1)信號(Signal): 進程可以通過接受特定信號被喚醒。 2)條件變量(Condition Variable): 多線程編程中用于同步多個線程的工具,可以讓一個線程在某些
    發(fā)表于 11-04 15:15

    socket與WebSocket的區(qū)別聯(lián)系

    在現(xiàn)代網(wǎng)絡通信中,Socket和WebSocket是兩種常見的通信協(xié)議。它們在網(wǎng)絡編程中扮演著重要的角色,但它們之間存在一些關鍵的區(qū)別聯(lián)系。 1. 定義和基本概念 Socket(套接字
    的頭像 發(fā)表于 11-04 09:19 ?1614次閱讀

    Python中多線程和多進程區(qū)別

    Python作為一種高級編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進程的概念、
    的頭像 發(fā)表于 10-23 11:48 ?1227次閱讀
    Python中多<b class='flag-5'>線程</b>和多<b class='flag-5'>進程</b>的<b class='flag-5'>區(qū)別</b>