成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

java - 如何理解自旋鎖和互斥鎖?

瀏覽:201日期:2023-11-03 13:07:23

問題描述

網上的文章看了很多還是很迷茫,誰能通俗易懂的給我解釋一下這兩個概念啊?

我在python多線程編碼中一般都是在線程的run方法中用while True死循環,然后在死循環的循環體末尾調用queue.task_done移除該隊列,然后在主線程調用queue的join方法阻塞主線程,防止主線程直接結束,請問我這種多線程編碼方式是否合理?會不會有什么bug?另外請問一下我在run中調用死循環是不是就叫做自旋鎖?

問題解答

回答1:

首先要了解什么是互斥鎖,互斥鎖代表的意思是什么,就是在兩個線程A,B 訪問同一塊內存的時侯。理想情況下我們的執行順序應該是 A 完全執行完后,B來執行但是,執行是有占用CPU指令時間的,如果不用任何機制的話,當A執行到一半時,B占用了CPU,B去處理這段內存,然后B執行完畢,A再得到CPU,內存數據不就出錯了嗎?為了內存的數據安全。就采用了一種互斥的技術,A訪問這段內存的時候,首先判斷這段內存有沒有在使用中的標志(取個名字叫做鎖),沒有的話對這段內存加一個標志(鎖),然后A在處理這段內存,A處理完了解鎖。如果在A處理內存這個時候B來訪問的話,B看到這段內存有使用中的標志(鎖)了,B可以有好幾種行為。行為一:占用CPU。不斷循環并測試鎖的狀態,線程不會掛起(睡眠),處于忙等狀態,采用這種行為的鎖叫做自旋鎖。行為二:線程B休眠阻塞,放棄CPU,直到A執行完了,鎖沒了,再使用內存。這種行為叫做互斥鎖。看到這里你大概也明白了,鎖就是實現互斥作用的同步機制。自旋鎖就是互斥鎖的一種情況(等待的時候會占用CPU的互斥鎖)罷了。不要被名稱所誤導。要了解背后的機制,換個名字也要明白,參考鏈接 鏈接描述

回答2:

1.Python多線程run方法的中使用while循環時,如果在循環體沒有使用停止程序機制,會一直運行下去.因此樓主如果想讓編碼方式得當,可以使用信號量或者其他變量機制通知循環體停止,或者判斷隊列是否為空,若為空,直接break,退出循環.

2.run中的死循環不是自旋鎖,假如循環體內有資源競爭,給加了個鎖,但這種鎖也是互斥鎖.python的鎖使用的是信號量semaphore,不是spinlock.

// https://svn.python.org/projects/python/trunk/Python/thread_atheos.hstatic int fastmutex_lock(fastmutex_t * mutex){ atomic_t prev = atomic_add(&mutex->count, 1); if (prev > 0)return lock_semaphore(mutex->sem); return 0;}

自旋鎖:多線程同時訪問同一個資源,為防止資源的讀取修改不一致設置的一種鎖,如果線程訪問資源時,已經有線程占有資源,那么后者線程會等待當前線程釋放資源,此時后者(不休眠)一直運行CPU檢測前者占有資源是否釋放,這種后者訪問并一直檢測資源占有的機制就是自旋鎖.

互斥鎖:目的和自旋鎖一樣,但機制不一樣,當線程占用資源后,加上鎖,后者線程訪問時,由于資源被占有,轉入休眠(sleep)狀態,等資源被釋放后,通過信號量通知排隊等候的線程。

回答3:

Python代碼會按照這樣的流程進行運行,

設置GIL

切換到某一個線程

運行

線程退出,設置為休眠狀態

解鎖GIL

重復以上操作

可能是因為GIL的原因,我似乎沒有在Python里面看到過自旋鎖,更多使用的是互斥鎖。

下面是我以前寫多線程的方法,僅供參考~

import Queuefrom threading import Threadtemp_queue = Queue.Queue()class Test(Thread): def __init__(self):Thread.__init__(self) def run(self):while temp_queue.empty() is False: pass # do sth here # temp = temp_queue.get()tasks = []for i in range(10): tasks.append(Test())for task in tasks: task.start()for task in tasks: task.join()

既然是隊列,Queue中Queue().get()中說明了Remove and return an item from the queue.

標簽: java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美日韩精品一本二本三本| 一级精品视频在线观看宜春院| 亚洲男人的天堂在线aⅴ视频| 国产白丝精品91爽爽久久| 色综合 综合色| 亚洲高清视频在线| 性伦欧美刺激片在线观看| 亚洲精品欧美激情| 亚洲国内精品| 中文字幕不卡的av| 欧美激情自拍| 亚洲欧美怡红院| 亚洲激情网址| 亚洲免费观看高清完整版在线观看熊 | 国产精品视频一二三区| 欧美日韩一区二区三区免费| 久久精品视频在线免费观看| 99久久精品免费观看| 精品国产免费久久| 成人av集中营| 国产亚洲欧美在线| 欧美阿v一级看视频| 国产女人18毛片水真多成人如厕| 欧美暴力喷水在线| 国产精品超碰97尤物18| 日韩视频精品在线观看| 亚洲色大成网站www久久九九| 在线亚洲激情| 午夜av电影一区| 欧美一区二区三区另类| 国产精品成人一区二区三区夜夜夜| 尤物精品在线| 亚洲在线成人精品| 欧美在线看片a免费观看| 国产成人a级片| 久久精品欧美日韩精品| 亚洲看片一区| 天堂一区二区在线免费观看| 欧美亚洲国产一区在线观看网站| 国产很黄免费观看久久| 久久伊人蜜桃av一区二区| 韩国一区二区三区在线观看| 一区二区视频免费在线观看| 久久福利电影| 久久精品999| 日韩精品一区二区三区老鸭窝| 99久久精品一区| 中文字幕一区二区三区在线播放| 国产欧美韩日| 久久99精品国产麻豆婷婷洗澡| 日韩丝袜美女视频| 激情综合自拍| 日本欧美一区二区三区乱码| 91精品国产91久久久久久最新毛片| 成人av影视在线观看| 国产精品色在线观看| 国产亚洲精品久久飘花| 奇米影视7777精品一区二区| 6080日韩午夜伦伦午夜伦| 91蜜桃网址入口| 亚洲综合视频网| 欧美丝袜丝交足nylons图片| 国产不卡视频在线观看| 国产精品理伦片| 久久在线视频| 成人小视频在线| 综合激情成人伊人| 欧美色视频在线| 色综合久久中文字幕综合网| 亚洲一区二区三区视频在线 | 欧美在线免费观看亚洲| 成人午夜精品一区二区三区| 国产亚洲欧美日韩在线一区| 国产精品一区视频| 懂色av一区二区夜夜嗨| 亚洲蜜桃精久久久久久久| 欧美日韩免费观看一区三区| 欧美日韩亚洲一区三区| 日韩av在线免费观看不卡| 久久众筹精品私拍模特| 亚洲影院在线| av电影天堂一区二区在线观看| 亚洲成av人在线观看| 精品日产卡一卡二卡麻豆| 国产伦精品一区二区三区照片91| 国产一区二区中文字幕| 亚洲天堂免费在线观看视频| 欧美亚洲丝袜传媒另类| 好看的日韩av电影| 国产一区高清在线| 18涩涩午夜精品.www| 欧美男同性恋视频网站| 亚洲欧洲精品一区二区三区波多野1战4| 黑人巨大精品欧美黑白配亚洲| 中文字幕一区在线观看| 91精品一区二区三区久久久久久| 一本久道久久综合婷婷鲸鱼| 顶级嫩模精品视频在线看| 亚洲午夜一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 免费在线观看一区二区| 欧美一区二区视频在线| 免费在线一区观看| 国产精品久久久久久福利一牛影视| 欧美日韩一二三区| 妖精视频成人观看www| av一二三不卡影片| 麻豆视频观看网址久久| 亚洲人成网站在线| 精品国产乱码久久| 欧美视频一区在线| 一区二区精品在线| 91免费版pro下载短视频| 久草中文综合在线| 亚洲精品视频免费看| 久久久99精品免费观看| 色94色欧美sute亚洲13| 精品999成人| 成人国产精品免费网站| 蜜桃传媒麻豆第一区在线观看| 国产精品美女久久久久久久久| 欧美色综合影院| 色婷婷av一区二区三区软件 | 亚洲综合一区在线| 性欧美xxxx大乳国产app| 欧美日韩在线一二三| 成人精品小蝌蚪| 精品亚洲aⅴ乱码一区二区三区| 一区二区三区精品在线观看| 日韩欧美在线影院| 欧美性感一类影片在线播放| 国产亚洲午夜| 狠狠久久婷婷| 欧美成人久久| 成人做爰69片免费看网站| 美国av一区二区| 亚洲成人动漫av| 亚洲免费观看高清完整版在线观看 | 一区二区三区中文在线| 欧美韩日一区二区三区| 精品国产人成亚洲区| 欧美日韩精品欧美日韩精品| 免费日韩一区二区| 99精品国产一区二区青青牛奶| 欧美在线黄色| 成人激情小说乱人伦| 国产伦精品一区二区三区免费| 午夜av区久久| 亚洲精品久久久蜜桃| 国产精品白丝在线| 中文字幕免费在线观看视频一区| 精品国产髙清在线看国产毛片 | 日韩午夜电影在线观看| 欧美日韩和欧美的一区二区| 91久久精品一区二区三| 久久久99爱| 久久亚洲二区| 久久精品人人| 欧美一区亚洲二区| 91网站最新地址| 成人手机电影网| 成人综合在线观看| 国产成人av电影免费在线观看| 国产91高潮流白浆在线麻豆 | 成人免费毛片片v| 国产suv精品一区二区883| 国产精品一区二区视频| 国产在线视频一区二区三区| 久久精品国产在热久久| 亚洲福中文字幕伊人影院| 亚洲免费成人av| 亚洲男人的天堂网| 亚洲精品成人少妇| 波多野结衣视频一区| av一区二区三区在线| 91一区二区三区在线播放| 91色porny| 91猫先生在线| 欧美99在线视频观看| 欧美久久99| 一区二区在线不卡| 日韩午夜黄色| 国产精品一页| 色欧美日韩亚洲| 欧美日韩在线免费视频| 在线91免费看| 久久综合网色—综合色88| 久久免费视频一区| 国产欧美一区二区精品忘忧草| 国产精品久久久一本精品| 亚洲精品中文字幕乱码三区| 亚洲午夜影视影院在线观看| 日本aⅴ精品一区二区三区| 精品在线免费观看| 国产成人在线观看免费网站| 国产高清在线精品| 成人福利视频网站| 欧美日韩一区综合| 亚洲综合不卡| 欧美午夜一区二区三区免费大片|