色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

"可重入"和"線程安全"是兩個概念 千萬不要搞混了

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:bug菌 ? 2021-02-10 17:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大伙估計在多任務程序中使用printf打印一些信息是非常歡樂的一件事,運氣不錯的話偶爾錯幾個數據、亂幾個碼也不是什么大問題,倒霉點的可能就直接掛機、卡死了,那這些到底是什么原因導致的呢? 今天的這篇文章應該可以幫助你解決一大部分問題。

01

兩個概念

1、可重入函數 多任務系統中每個進程或線程都是由多種執行流并發運行的,當執行流同時進入同一個函數(大部分是由于中斷),而不會導致函數結果不確定或者錯誤,就可認為該函數是可重入的。

a2100dc0-5f65-11eb-8b86-12bb97331649.png

上圖中的signal一般都是因為中斷等原因產生的,在我們多任務系統中中斷更是無時無刻的在隨機發生著,一旦線程或者進程被中斷轉而去執行消息處理,而恰巧的是此時線程所執行的操作與信號處理相同,比如malloc,他們都共享同一個資源(全局堆空間)。 當信號處理返回到原來的執行流中卻由于信號處理的改寫而受影響,比如重入的問題導致malloc會分配相同的內存區域,或者其他的數據篡改,鎖死等,這樣該函數就是不可重入的。 2、線程安全 多個線程并發運行且執行相同的代碼,而不會導致運行結果受影響,我們就認為是線程安全。

a2b2c6e6-5f65-11eb-8b86-12bb97331649.png

對于線程安全往往加個互斥鎖就可以解決戰斗,當然你如果沒有使用全局變量、靜態變量等等共享資源,那他們基本上是線程安全的。 其實從表面上看這兩個概念并沒有太大的差異,無非就是運行同一塊代碼,會不會導致不確定的結果。 3、VS 再仔細想想,其實這兩個概念所關注的層面是不同的,可重入函數要求相同執行流執行不會受影響,而線程安全僅僅只是在線程這個層面上進行的要求。 所以可重入的要求比線程安全要更加嚴苛,可重入必定線程安全,而線程安全并不一定可重入,如下圖是他們的關系:

a64389d0-5f65-11eb-8b86-12bb97331649.png

02

不可重入死鎖

下面我們來簡單分析一下不可重入死鎖的問題 :

a9f66ade-5f65-11eb-8b86-12bb97331649.png

上圖我們為函數加了互斥lock(不考慮遞歸鎖),那么它就是線程安全的,然而剛把共享資源部分上鎖,隨機的中斷信號處理發生了,轉而執行信號處理函數,而在信號處理中也同樣執行相同的Fuction代碼,此時資源已經鎖住,必須等待前面調用Fuction函數的線程釋放,但此線程又在等待信號處理訪問,最終死鎖,涼涼! 當然你可以使用遞歸鎖來進行處理,這在正常設計中是需要避免的,當時對于一些需要調用外部庫的設計,只能選擇遞歸鎖等。

03

可重入的識別

說實在對于很多玩RTOS的伙計,直接關中斷、開中斷的臨界資源保護就基本告別了一部分不可重入問題,而這樣的操作會影響多任務的并發執行,但是如果你只是加了幾把鎖,可能在程序中不重入的問題還是要注意一下。 這里不可重入問題不完全總結了幾點:

1、標準IO函數都會使用到全局的數據結構,比如printf函數 : 由于使用了全局標準輸出stdout,所以線程不安全也就更不能重入了。

2、malloc和free : 這兩個函數都是在全局的堆空間上進行操作,如果有加鎖那就是線程安全的,但是不可重入。

3、對于全局、靜態的資源的訪問都會導致線程不安全,比如一些函數使用的是靜態緩存區等,你可以使用本地copy加臨界區來進行保護,盡量使用局部變量。

4、調用不可重入或者線程不安全的函數也會繼承對應特點。

責任編輯:xj

原文標題:同事"可重入"與"線程安全"老分不清,導致一堆bug!

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉載請注明出處。

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

    關注

    3

    文章

    4383

    瀏覽量

    65016
  • BUG
    BUG
    +關注

    關注

    0

    文章

    156

    瀏覽量

    16032
  • 線程安全
    +關注

    關注

    0

    文章

    13

    瀏覽量

    2556

原文標題:同事"可重入"與"線程安全"老分不清,導致一堆bug!

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    精密設備的"電力保鏢":優比施UPS如何守護數據與硬件安全

    一、用戶痛點:精密設備的"斷電恐懼癥"在數據中心、醫療實驗室、工業控制等場景中,精密電子設備對電源的依賴已達到"零容忍"級別:數據
    的頭像 發表于 07-25 09:00 ?97次閱讀
    精密設備的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;電力保鏢&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;:優比施UPS如何守護數據與硬件<b class='flag-5'>安全</b>?

    Modbus RTU通訊協議:瑞銀電能表的&amp;quot;普通話&amp;quot;指南

    Modbus RTU協議就像工業設備間的&quot;普通話&quot;,讓不同品牌的電能表、傳感器等設備能夠順暢&quot;交流&quot;。
    的頭像 發表于 07-18 18:30 ?354次閱讀
    Modbus RTU通訊協議:瑞銀電能表的&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;普通話&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;指南

    地熱發電環網柜局放監測設備:清潔能源電網的&amp;amp;quot;安全衛士&amp;amp;quot;

    文章由山東華科信息技術有限公司提供在&quot;雙碳&quot;目標驅動下,地熱發電作為穩定基荷電源,其電網接入設備的可靠性至關重要。環網柜作為地熱電站與主網連接的關鍵節點,其內部絕緣缺陷可能引發
    的頭像 發表于 07-16 10:15 ?132次閱讀
    地熱發電環網柜局放監測設備:清潔能源電網的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;<b class='flag-5'>安全</b>衛士&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    為什么GNSS/INS組合被譽為導航界的&amp;amp;quot;黃金搭檔&amp;amp;quot;?

    在導航技術領域,GNSS(全球導航衛星系統)和INS(慣性導航系統)的結合,一直被業界譽為&quot;黃金搭檔&quot;。它們優勢互補,克服了單一系統的局限性,為高精度、高可靠性的導航提供了完美
    的頭像 發表于 07-09 17:12 ?215次閱讀
    為什么GNSS/INS組合被譽為導航界的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;黃金搭檔&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;?

    工業數采很多數據你可能用不上,不同系統要的&amp;quot;數據菜&amp;quot;要對號入座

    工業數采的本質,是給不同的系統&quot;投喂&quot;它們能消化的數據。就像請客吃飯,MES要的是&quot;快餐&quot;(快節奏數據),QMS要的是&
    的頭像 發表于 06-11 11:29 ?276次閱讀

    人形機器人為什么要定制? ——揭秘工業場景的&amp;quot;千面需求&amp;quot;

    核心洞察:標準化機器人難以破解工業場景的&quot;需求碎片化&quot;困局。富唯智能通過?&quot;五大模塊柔性架構+零代碼中樞&quot;?,為?人形機器人為什么要定制?提供了
    的頭像 發表于 06-10 17:19 ?344次閱讀
    人形機器人為什么要定制? ——揭秘工業場景的&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;千面需求&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    倉儲界的&amp;quot;速效救心丸&amp;quot;,Ethercat轉PROFINET網關實戰案例

    實戰案例,Ethercat轉PROFINET網關,倉儲界的&quot;速效救心丸&quot;
    的頭像 發表于 05-11 10:32 ?318次閱讀
    倉儲界的&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;速效救心丸&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;,Ethercat轉PROFINET網關實戰案例

    中美貿易硬核破局!先積集成以中國&amp;amp;quot;芯&amp;amp;quot;智造筑牢供應鏈護城河

    加速鍵,&quot;當技術封鎖成為常態,國產替代不再是備選,而是生存剛需。&quot;一全鏈國產鐵三角中國芯強勢崛起!我們以&quot;設計-制造-封測&quot;全鏈國產鐵三角,構建
    的頭像 發表于 04-27 10:49 ?320次閱讀
    中美貿易硬核破局!先積集成以中國&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;芯&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;智造筑牢供應鏈護城河

    電纜局部放電在線監測:守護電網安全的&amp;amp;quot;黑科技&amp;amp;quot;

    運行的命脈。而在這場與時間的賽跑中,電纜局部放電在線監測技術正扮演著&quot;安全衛士&quot;的角色,用科技力量將隱患扼殺于萌芽狀態。一、看不見的&quot;定時炸彈&
    的頭像 發表于 04-14 18:12 ?348次閱讀
    電纜局部放電在線監測:守護電網<b class='flag-5'>安全</b>的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;黑科技&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    煉油廠開閉所局放監測:為能源樞紐裝上&amp;amp;quot;智能安全閥&amp;amp;quot;

    &quot;,可能點燃易燃氣體,引發連鎖爆炸。傳統監測手段在防爆環境下捉襟見肘,而局放在線監測系統正為煉油廠筑起智能安全屏障。一、局放隱患:煉油廠開閉所的&quot;定時炸彈&quot
    的頭像 發表于 04-09 16:41 ?352次閱讀
    煉油廠開閉所局放監測:為能源樞紐裝上&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;智能<b class='flag-5'>安全</b>閥&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    隧道管廊變壓器局放在線監測:為地下&amp;amp;quot;電力心臟&amp;amp;quot;裝上智能聽診器

    可能因老化、受潮產生局部放電,如同潛伏的&quot;電蝕暗流&quot;,持續威脅著電力輸送的安全。如何為這顆&quot;心臟&quot;裝
    的頭像 發表于 04-09 16:37 ?359次閱讀
    隧道管廊變壓器局放在線監測:為地下&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;電力心臟&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;裝上智能聽診器

    【硬核測評】凌華DAQE雙雄爭霸:工業數據采集界的&amp;amp;quot;速度與激情&amp;amp;quot;實戰解析

    在汽車碰撞測試的驚險瞬間,半導體晶圓的微觀世界,甚至是狂風呼嘯的風力發電場,一場關于數據采集的&quot;軍備競賽&quot;正在上演。凌華科技推出的DAQE-2010與DAQE-2010(G)這對&quot;黃金搭檔&
    的頭像 發表于 03-26 15:07 ?412次閱讀
    【硬核測評】凌華DAQE雙雄爭霸:工業數據采集界的&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;速度與激情&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;實戰解析

    力合微電子攜手中山古鎮政府開啟&amp;amp;quot;智光互聯&amp;amp;quot;新紀元 共筑全球智能照明產業高地

    2025年3月18日,在第32屆中國古鎮國際燈飾博覽會的聚光燈下,力合微電子與中山市古鎮鎮政府簽署戰略合作協議,啟動&quot;智光互聯&quot;合作項目。作為國內物聯網通信技術與芯片研發的領軍
    的頭像 發表于 03-19 09:47 ?627次閱讀
    力合微電子攜手中山古鎮政府開啟&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;智光互聯&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;新紀元 共筑全球智能照明產業高地

    3分鐘讀懂 | 氣密性檢測儀如何&amp;amp;quot;揪出&amp;amp;quot;泄漏點?原理全拆解!

    在日常生活中,我們可能很少直接接觸到氣密性檢測儀,但在工業生產、汽車制造、醫療器械等領域,它卻是不可或缺的&quot;神器&quot;。那么,這個看似神秘的設備究竟是如何工作的?它又是如何精準
    的頭像 發表于 03-15 16:13 ?376次閱讀
    3分鐘讀懂 | 氣密性檢測儀如何&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;揪出&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;泄漏點?原理全拆解!

    創新驅動未來:大為錫膏為高精尖散熱器技術注入&amp;amp;quot;強芯&amp;amp;quot;動力

    在人工智能、區塊鏈、人形機器人、高性能計算等前沿技術飛速發展的今天,電子設備的&quot;體溫管理&quot;正成為決定技術突破的關鍵門檻。當算力以指數級增長時,散熱器作為設備的&quot;隱形
    的頭像 發表于 02-13 10:41 ?424次閱讀
    創新驅動未來:大為錫膏為高精尖散熱器技術注入&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;強芯&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;動力
    主站蜘蛛池模板: 97在线精品视频免费 | 学生小泬无遮挡女HD | 久久理伦片琪琪电影院 | 全彩黄漫火影忍者纲手无遮挡 | 二级毛片免费观看全程 | 首页 国产 亚洲 中文字幕 | 百度影音第四色 | 国产伦精品一区二区免费 | 有人有片的观看免费视频 | 哪灬你的鸣巴好大 | 免费看片A级毛片免费看 | 超碰视频97av | 久久久久久久久久综合情日本 | 国产精品午夜小视频观看 | 国产精品 中文字幕 亚洲 欧美 | 国产午夜在线观看视频播放 | 亚洲中文无码永久免费 | 果冻传媒在线播放 免费观看 | 色婷婷激婷婷深爱五月小蛇 | 四房播播最新地址 | 超碰97视频在线观看 | 午夜电影三级还珠格格 | 美女乱草鲍高清照片 | 最近免费视频中文2019完整版 | free18sex性自拍裸舞 | 日韩国产精品欧美一区二区 | 暖暖 视频 免费 高清 在线观看 | 日日啪无需播放器 | 亚洲欧洲精品成人久久曰影片 | 好男人在线视频 | 伊人久久综在合线影院 | 性888xxxx入欧美 | 一手揉着乳头一手模仿抽插视频 | 日本理论片和搜子同居的日子2 | 双手绑在床头调教乳尖 | 亚洲中文字幕无码爆乳APP | 被老师按在办公桌吸奶头 | 狠狠狠的在啪线香蕉 | 在线 无码 中文 强 乱 | 国产午夜一级鲁丝片 | 忘忧草日本在线社区WWW电影 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品