04信號量

如果有兩個或者兩個以上的任務(進程 / 線程,并發的實體),去訪問一個共享資源(硬件上面的,軟件上的)。我們必須要保證這個共享資源的有序訪問,否則會產生不可預知的后果

?? ?例子:
?? ?very_important_i = 5; // 共享資源
?? ?
?? ?fun() {
?? ??? ?very_important_i++;
?? ?}
?? ?有兩個任務同時調用了fun()這個函數,那么請問very_important_i 最后的值是多少?
?? ??? ??? ?7 ----> 有可能
?? ??? ??? ?6 ----> 有可能,不是我們期望的結果
?? ??? ??? ?8 ?不可能
?? ??? ??? ?5 ?不可能

?

并發:任務(進程)在任意時刻都是有可能被暫停的
?? ??? ?出現結果為6,就不是對共享資源的有序訪問,是有問題的,所以我們需要對這個共享資源進行某一種方式的保護,以使它有序訪問
?? ??? ?“避免競爭”
?? ??? ?
并發可以提高cpu利用率,有可能造成競爭,造成共享資源的非法訪問,程序行為異常....
?? ?
解決方法:
?? ?能不能不要并發呢?
?? ?顯然不可以
?? ?
?? ?在保留并發的前提下,"避免競爭",在訪問共享資源時,嚴格的串行

??1. 信號量(semaphore)機制

信號量是什么?
????????信號量的作用是什么?
? ? ? ? 為什么需要信號量?
? ? ? ? 信號量的工作原理是什么?

????????信號量(semaphore)是一種用于提供不同進程或者一個進程內部不同的線程間同步“避免競爭”的一種機制
?? ?
????????進程/線程,任務:并發的實體
? ? ? ? “同步”:并發的實體之間,相互等待,相互制約的一種機制
?? ??? ?保證實體對共享資源有條件的訪問
?? ?
????????信號量就是為了保護共享資源,讓共享資源有序訪問的一種機制
? ? ? ? 信號量的目的:為了保護共享資源,使共享資源有序訪問
?? ?
?? ?信號量是程序界最高尚的一個東西,因為它不是為了自己而存在的,它是為了別人(它要保護的對象,共享資源)而存在的,"保鏢"

2. 信號量是如何工作的

信號量是為了保護共享資源(大家都可以訪問到的資源)有序的訪問

?? ?信號量機制其實是程序員之間的一種約定,用來保護共享資源的
?? ?如:進程A和進程B,都需要訪問一個共享資源“互斥設備”,那么我們可以使用一個信號量來表示能不能訪問這個資源,每一個進程需要訪問共享資源前,先去訪問該信號量,如果能訪問共享資源(信號量允許),則先把信號量設置為"NO",然后再去訪問該共享資源,訪問完共享資源,再把信號量設置為“YES”






?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13608.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13608.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13608.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue3父組件使用ref獲取子組件的屬性和方法

在vue3中父組件訪問子組件中的屬性和方法是需要借助于ref: 1.<script setup> 中定義響應式變量 例如&#xff1a; const demo1 ref(null) 2.在引入的子組件標簽上綁定ref屬性的值與定義的響應式變量同名( <demo1 ref"demo1"/>)。 父組件代碼如下&…

cPanel中如何進行網站質量檢測

最近我在維護網站的時候需要查看網站質量如何&#xff0c;我使用的是Hostease的主機安裝的WordPress網站&#xff0c;隨后在咨詢了他們的技術支持后獲得了方法。 當您在cPanel中部署了網站后&#xff0c;確保網站的質量和性能是至關重要的。cPanel提供了一個便捷的功能Site Qu…

Postman進階功能-Mock服務與監控

大家好&#xff0c;前面跟大家分享一些關于 Postman 的進階功能&#xff0c;當我們深入探索 Postman 的進階功能時&#xff0c;Mock 服務與監控這兩個重要方面便躍然眼前。 首先&#xff0c;Mock 服務為我們提供了一種靈活便捷的方式&#xff0c;讓我們在某些實際接口尚未準備好…

18.SpringCloud Gateway

簡介 SpringCloud Gateway是spingcloud家族的產品&#xff0c;使用netty實現的高性能服務網關&#xff0c;用于替換netflix公司的zuul網關實現。 參考地址&#xff1a; https://spring.io/projects/spring-cloud 術語 工作原理 Route Predicate Factories GatewayFilte…

科大訊飛筆試題---字符串切割

1、 題目描述 小紅拿到了一個字符串&#xff0c;她希望你幫她切割成若干子串&#xff0c;滿足以下兩個條件&#xff1a; 子串長度均為不小于 3 的奇數。 子串內部的字符全部相同。 輸入 第一行輸入一個正整數n&#xff0c;代表字符串長度。第二行輸入一個字符串&#xff0c;僅…

前端基礎入門三大核心之HTML篇:解密標簽、標題與段落的藝術

前端基礎入門三大核心之HTML篇&#xff1a;解密標簽、標題與段落的藝術 一、HTML標簽&#xff1a;網頁元素的建筑磚石1.1 HTML標簽的基本概念1.2 基礎標簽示例自閉合標簽示例&#xff1a;圖片標簽 1.3 實戰應用&#xff1a;使用<meta>標簽優化網頁 二、標題標簽&#xff…

運行時間比較

subprocess.run() 函數參數的含義&#xff1a; shell_command&#xff1a;這是要執行的命令。它可以是一個字符串&#xff0c;也可以是一個包含命令和參數的列表。例如&#xff0c;“ls -l” 或 [“ls”, “-l”]。shellTrue&#xff1a;這是一個布爾值參數&#xff0c;指示是…

新一代分布式鏈路追蹤skywalking編碼實戰教程(下)

&#x1f680; 作者 &#xff1a;“二當家-小D” &#x1f680; 博主簡介&#xff1a;?前荔枝FM架構師、阿里資深工程師||曾任職于阿里巴巴擔任多個項目負責人&#xff0c;8年開發架構經驗&#xff0c;精通java,擅長分布式高并發架構,自動化壓力測試&#xff0c;微服務容器化k…

PostgresSQL開啟歸檔模式

文章目錄 一、查詢數據庫歸檔是否開啟1、查看數據目錄(找出conf文件位置)2、查看歸檔是否開啟 二、開啟歸檔模式&#xff08;開啟后有一定的性能損耗&#xff09;1、創建歸檔目錄2、修改postgresql.conf配置文件3、重啟pg 三、驗證歸檔情況1、查看歸檔是否開啟2、檢查點 , 刷新…

利用遠控工具橫向

一.橫向移動介紹和方式 1.介紹 內網滲透的橫向移動是指攻擊者在成功進入內網后&#xff0c;通過利用內部系統的漏洞或者獲取的合法訪問權限&#xff0c;從一個受感染的系統向其他系統擴散或移動。這種橫向移動的目的通常是為了獲取更多的敏感信息、提升權限、擴大攻擊面或者更…

【藍橋杯】

題目列表 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) #include<bits/stdc.h> using llunsigned long long; #define int ll const int N2e510; int k0; std::string s; int a,b,c,d; void solve() {char op;std::cin>>op;if(opA){std::string s;for(int i1;i&l…

文心一言指令解析

1、介紹 文心一言是一款靈感啟發類的產品&#xff0c;它以簡潔而深刻的文字表達來激發讀者的思考和感悟。該產品通過每天提供一句精選的短語&#xff0c;讓用戶在繁忙的生活中停下腳步&#xff0c;思考人生和內心的真實需求。 每一句文心一言都經過精心挑選&#xff0c;它們通…

小程序-滾動觸底-頁面列表數據無限加載

// index/index.vue <template> <!-- 自定義導航欄 --> <CustomNavbar /> <scroll-view scrolltolower"onScrolltolower" scroll-y class"scroll-view"> <!-- 猜你喜歡 --> <Guess ref"guessRef" /> </s…

Hugging Face的TrainingArguments常用參數學習

Hugging Face的TrainingArguments類是用于設置和管理訓練模型時的各種參數。下面是一些關鍵參數及其原理和使用示例&#xff1a; 1. 輸出目錄 (output_dir) 描述&#xff1a;保存模型和檢查點的目錄。 示例&#xff1a; output_dir./results2. 訓練和驗證批次大小 (per_devi…

藍橋杯高頻考點真題單——4.修改數組

修改數組 8.修改數組 - 藍橋云課 (lanqiao.cn) 本來我的思路很一般&#xff0c;用一個set&#xff0c;記錄每一段的最值&#xff0c;然后分情況討論&#xff0c;如果查詢到未記錄的&#xff0c;那就直接輸出&#xff0c;并記錄。如果當前值前面已經有過&#xff0c;那就直接從…

惡劣天氣下的車輛探測:多方關注 多模態融合方法

摘要 在自動駕駛汽車技術領域&#xff0c;多模式車輛檢測網絡(MVDNet)代表了一個重大的飛躍&#xff0c;特別是在具有挑戰性的天氣條件下。本文主要通過集成多頭關注層對MVDNet進行增強&#xff0c;旨在改進其性能。MVDNet模型中集成的多頭關注層是一個關鍵的改進&#xff0c;…

民國漫畫雜志《時代漫畫》第14期.PDF

時代漫畫14.PDF: https://url03.ctfile.com/f/1779803-1247458399-6732ac?p9586 (訪問密碼: 9586) 《時代漫畫》的雜志在1934年誕生了&#xff0c;截止1937年6月戰爭來臨被迫停刊共發行了39期。 ps:資源來源網絡&#xff01;

java+ vue.js+uniapp一款基于云計算技術的企業級生產管理系統,云MES源碼 MES系統如何與ERP系統集成?

java vue.jsuniapp一款基于云計算技術的企業級生產管理系統&#xff0c;云MES源碼&#xff0c;MES系統如何與ERP系統集成&#xff1f; MES系統&#xff08;制造執行系統&#xff09;與ERP系統&#xff08;企業資源規劃系統&#xff09;的集成可以通過多種方式實現&#xff0c;這…

探索亞馬遜云科技技術課程:大模型平臺與提示工程的應用與優化

上方圖片源自亞馬遜云科技【生成式 AI 精英速成計劃】技術開發技能課程 前言 學習了亞馬遜云科技–技術開發技能課程 本課程分為三個部分&#xff0c;了解如何使用大模型平臺、如何訓練與部署大模型及生成式AI產品應用與開發&#xff0c;了解各類服務的優勢、功能、典型使用案…

蘋果MacOS系統使用微軟遠程桌面連接Windows電腦桌面詳細步驟

文章目錄 前言1. 測試本地局域網內遠程控制1.1 Windows打開遠程桌面1.2 局域網遠程控制windows 2. 測試Mac公網遠程控制windows2.1 在windows電腦上安裝cpolar2.2 Mac公網遠程windows 3. 配置公網固定TCP地址 前言 日常工作生活中&#xff0c;有時候會涉及到不同設備不同操作系…