python进程和线程中的两个锁
生活随笔
收集整理的這篇文章主要介紹了
python进程和线程中的两个锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GIL鎖(全局解釋器鎖)
gil鎖的作用是:每個進程中同一時間只能有一個進程鏈接cpu,鏈接以后,cpu執行100個cpu指令以后,再由別的線程去鏈接cpu,
?
Rlock鎖(可重入鎖/遞歸鎖)
?
import time import threadinglock = threading.RLock()n = 10def task(i):print('這段代碼不加鎖',i)# print('hello word')lock.acquire() # 加鎖,此區域的代碼同一時刻只能有一個線程執行,并且只能是加鎖的這個進程執行,cpu執行完100個cpu指令以后又返回來執行這個進程,直到進程執行完畢,再去調度別的進程print('hello word')global nprint('當前線程',i,'讀取到的n值為:',n)n = itime.sleep(1)print('當前線程',i,'修改n值為:',n)lock.release() # 釋放鎖for i in range(10):t = threading.Thread(target=task,args=(i,))t.start() #for循環循環的是準備好的一個線程實例,至于這個實例要運行多久,實例并不管他#start表示我已近準備好了,你可以調度我了?
轉載于:https://www.cnblogs.com/zhuhaofeng/p/9623381.html
總結
以上是生活随笔為你收集整理的python进程和线程中的两个锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javase基础第三天
- 下一篇: out对象的使用