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

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

淺談python多線程和多線程變量共享問題介紹

瀏覽:216日期:2022-07-29 16:11:28

1、demo

第一個代碼是多線程的簡單使用,編寫了線程如何執(zhí)行函數(shù)和類。

import threadingimport timeclass ClassName(threading.Thread):'''創(chuàng)建類,通過多線程執(zhí)行'''def run(self):for i in range(5):print(i)time.sleep(1)def sing():for i in range(1,11):print('唱歌第 %d 遍' % i)time.sleep(1)def dance():for i in range(1,16):print('跳舞第 %d 遍' % i)time.sleep(1)def main():t1 = threading.Thread(target = sing)t2 = threading.Thread(target = dance)t = ClassName()# 啟動線程t1.start()t2.start()t.start()while True:length = len(threading.enumerate())print('正在運行的線程有 %s' %threading.enumerate())if length <= 1:breaktime.sleep(1)if __name__ == ’__main__’:main()

執(zhí)行結果可以看到函數(shù) sing、dance和類在同時執(zhí)行,執(zhí)行效果太長就不方截圖了

2、多線程共享變量

通過定義全局變量,然后再test1函數(shù)類部進行更改全局變量,test2打印全局變量。

import threadingimport time#定義全局變量g_num = 0def test1():'''函數(shù)test1對全局變量進行更改'''global g_numfor i in range(1,10):g_num += 1print('--- test1 線程 g_num = %d--- ' % g_num)def test2():'''函數(shù)test2 打印全局變量'''print('--- test2 線程 g_num = %d--- ' % g_num)def main():t1 = threading.Thread(target=test1)t2 = threading.Thread(target=test2)# 啟動線程t1.start()# 增加睡眠是為了保證優(yōu)先執(zhí)行函數(shù)test1time.sleep(1)t2.start()print('--- 主線程 g_num = %d--- ' % g_num)if __name__ == ’__main__’:main()

執(zhí)行結果可以看出,在主線程和創(chuàng)建的兩個線程中讀取的是一樣的值,既可以表明在多線程中變量共享

淺談python多線程和多線程變量共享問題介紹

3、資源競爭

在多線程兩個函數(shù)中同時更改一個變量時,由于cpu的計算能力,當修改參數(shù)的代碼塊無法一次性執(zhí)行完成時,就會產(chǎn)生資源競爭

import threadingimport time# 定義全局變量g_num = 0def test1(num):'''函數(shù)test1對全局變量進行更改'''global g_numfor i in range(num):g_num += 1print('test1 線程 g_num = %d---' % g_num)def test2(num):'''函數(shù)test2對全局變量進行更改'''global g_numfor i in range(num):g_num += 1print('tes2 線程 g_num = %d---' % g_num)def main():t1 = threading.Thread(target=test1, args=(1000000, ))t2 = threading.Thread(target=test2, args=(1000000, ))t1.start()t2.start()time.sleep(1)print('主線程 g_num = %d---' % g_num)if __name__ == ’__main__’:main()

可以先試試傳遞參數(shù)為100時,可以看到g_num = 200 這是因為函數(shù)代碼可以一次性執(zhí)行完成,當參數(shù)為1000000時代碼無法一次性執(zhí)行完成,g_num!= 2000000

淺談python多線程和多線程變量共享問題介紹

4、互斥鎖

互斥鎖可以解決資源競爭的問題,原理很簡單,通過對代碼塊上鎖,保證該代碼執(zhí)行完成前,其它代碼無法進行修改。執(zhí)行完成后解鎖,其它代碼就可以執(zhí)行了。

import threadingimport time# 創(chuàng)建變量g_num = 0# 創(chuàng)建鎖默認為開鎖狀態(tài)mutex = threading.Lock()def test1(num):global g_numfor i in range(num):# 上鎖mutex.acquire()g_num += 1# 解鎖mutex.release()print('--- test1 線程 g_num = %d---' % g_num)def test2(num):global g_numfor i in range(num):# 上鎖mutex.acquire()g_num += 1# 解鎖mutex.release()print('--- test2 線程 g_num = %d---' % g_num)def main():t1 = threading.Thread(target=test1, args=(1000000, ))t2 = threading.Thread(target=test2, args=(1000000, ))t1.start()t2.start()time.sleep(1)print('--- 主線程 g_num = %d---' % g_num)if __name__ == ’__main__’:main()

可以看到加了鎖之后,代碼執(zhí)行不會出現(xiàn)資源競爭,結果也是正常的。互斥鎖,上鎖的代碼越少越好。

淺談python多線程和多線程變量共享問題介紹

5、死鎖

當出現(xiàn)多個鎖時,就可能會產(chǎn)生死鎖這個情況。當關閉一個鎖時,這個鎖已經(jīng)為關閉狀態(tài)的話,程序就會阻塞。就如同下面這個代碼中。函數(shù)test1關閉mutexB鎖時,函數(shù)test2提前將其關閉了,未進行解鎖,程序就會一直阻塞。

import threadingimport time# 創(chuàng)建兩個鎖A, BmutexA = threading.Lock()mutexB = threading.Lock()def test1():# 對muctexA上鎖mutexA.acquire()# mutexA上鎖后,延時1秒,等待mutexB上鎖print('test1 ---do1---up---')time.sleep(1)# 此時會堵塞,因為mutexB已經(jīng)上鎖mutexB.acquire()print('test1 ---do1---down---')mutexB.release()# 對mutexA解鎖mutexA.release()def test2():# 對muctexB上鎖mutexB.acquire()# mutexB上鎖后,延時1秒,等待mutexA上鎖print('test2 ---do1---up---')time.sleep(1)# 此時會堵塞,因為mutexB已經(jīng)上鎖mutexA.acquire()print('test2 ---do1---down---')mutexA.release()# 對mutexA解鎖mutexB.release()def main():t1 = threading.Thread(target=test1)t2 = threading.Thread(target=test2)t1.start()t2.start()if __name__ == ’__main__’:main()

代碼執(zhí)行效果可以看到程序會一直阻塞解決方法1、在程序編寫時,就需要注意避免死鎖2、可以參考銀行家算法

淺談python多線程和多線程變量共享問題介紹

到此這篇關于淺談python多線程和多線程變量共享問題介紹的文章就介紹到這了,更多相關python 多線程變量共享內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲精品在线观看视频| 亚洲综合免费观看高清在线观看| 久久久久久久久岛国免费| 欧美伊人久久| 午夜a成v人精品| 亚洲国产精品t66y| 欧美中文字幕一二三区视频| 色综合天天在线| 天堂午夜影视日韩欧美一区二区| 欧美在线|欧美| 91亚洲精品一区二区乱码| 中文字幕亚洲区| 91精品国产综合久久婷婷香蕉| 国内一区二区三区在线视频| 麻豆国产一区二区| 国产日韩欧美综合在线| 亚洲一区综合| 91网页版在线| 人人爽香蕉精品| 亚洲欧美激情一区二区| 精品美女被调教视频大全网站| 99精品视频免费观看视频| 亚洲一区二区四区蜜桃| 久久精品人人做人人综合| 91国偷自产一区二区三区成为亚洲经典| 国产91丝袜在线播放九色| 亚洲国产精品自拍| 中文字幕免费不卡| 欧美一区二区视频在线观看2022| 亚洲黄色成人久久久| 色综合天天做天天爱| 国内精品国产三级国产a久久 | 欧美一区日本一区韩国一区| 狠狠干综合网| 99在线精品视频| 国产美女主播视频一区| 日韩av在线免费观看不卡| 国产欧美一区二区精品秋霞影院| 欧美性xxxxxxxx| 久久久久综合| 先锋影音一区二区三区| 亚洲高清久久| 成人网在线播放| 国产一区在线看| 久久99精品国产91久久来源| 日韩精品一二三四| 亚洲国产精品人人做人人爽| 亚洲美女免费在线| 亚洲人成7777| 亚洲综合一区二区| 亚洲一区二区av电影| 国产精品高潮呻吟| 国产精品久久久久久久久搜平片| 精品日产卡一卡二卡麻豆| 欧美日本高清视频在线观看| 制服.丝袜.亚洲.中文.综合| 欧美丝袜丝交足nylons图片| 在线免费观看不卡av| 在线欧美日韩国产| 欧美日韩国产一二三| 欧美电影影音先锋| 精品国产一区二区三区久久影院| 99久久婷婷国产综合精品| 国产精品视频看| 欧美综合77777色婷婷| 免费的成人av| 日韩欧美电影一区| 欧美成人一品| 欧美日韩一区二区三区高清| 91精品国产综合久久久久久漫画 | 欧美日韩精品三区| 欧美日韩不卡一区| 91麻豆精品久久久久蜜臀| 久久久久久黄色| 亚洲欧洲另类国产综合| 亚洲黄色免费网站| 日韩av不卡一区二区| 国模一区二区三区白浆| 国产精品一色哟哟哟| 国产精品中文欧美| 欧美系列一区| 一本久久a久久免费精品不卡| 制服丝袜av成人在线看| 欧美激情资源网| 亚洲1区2区3区视频| 国产精品亚洲午夜一区二区三区| 青草av.久久免费一区| 久久在线观看免费| 精品欧美乱码久久久久久1区2区| 白白色 亚洲乱淫| 亚洲一二三四区| 色婷婷久久久亚洲一区二区三区| 日韩国产一二三区| 精品久久久久久久久久久久久久久久久 | 色综合中文字幕国产| 久久久人人人| 成人免费视频网站在线观看| 亚洲激情五月婷婷| 欧美一区二区大片| 亚洲欧美日韩视频二区| 99亚偷拍自图区亚洲| 亚洲午夜精品网| 日韩欧美国产小视频| 亚洲精品久久| 国产在线视频一区二区三区| 加勒比av一区二区| 日韩视频在线观看国产| 日韩一级大片在线| 亚洲国产精品一区二区久久 | 亚洲经典在线| 精品久久久久99| 久久精品国产在热久久| 一区二区三区久久网| 久久综合色之久久综合| 美女国产一区二区| 国产精品久久久一区二区| 日韩欧美一区二区不卡| 日韩在线卡一卡二| 亚洲日产国产精品| 欧美激情艳妇裸体舞| 久久99热国产| 色94色欧美sute亚洲13| 一区二区三区资源| 久久综合九色综合97_久久久| 翔田千里一区二区| 欧美日韩国产三区| 国产精品一区三区| 91在线国内视频| 国内精品99| 国产日韩亚洲欧美综合| 国产成人精品www牛牛影视| 午夜一区不卡| 亚洲图片有声小说| 亚洲欧洲日夜超级视频| 日韩美女精品在线| 黄色成人精品网站| 国产日韩亚洲欧美综合| av日韩在线网站| 久久精品网站免费观看| 成人动漫精品一区二区| 日韩欧美专区在线| 国产福利视频一区二区三区| 欧美丰满少妇xxxxx高潮对白| 青青草91视频| 欧美日韩视频在线第一区| 免费成人在线影院| 欧美日韩成人综合在线一区二区| 久久电影网站中文字幕| 欧美色网站导航| 国产制服丝袜一区| 欧美一区二区三区四区五区 | 欧美在线首页| 国产精品福利电影一区二区三区四区| 欧美aa国产视频| 中文字幕综合网| 亚洲在线一区| 久久精品久久精品| 日韩欧美国产不卡| 91麻豆免费视频| 欧美国产成人在线| 欧美午夜一区| 亚洲综合久久久久| 久久亚洲综合网| 国产乱国产乱300精品| 久久久久亚洲蜜桃| 亚洲精一区二区三区| 日韩精品免费专区| 51久久夜色精品国产麻豆| 成人小视频在线观看| 中文字幕一区二区不卡| 久久性天堂网| 国产九九视频一区二区三区| 精品少妇一区二区三区免费观看| 91小视频免费看| 亚洲乱码国产乱码精品精的特点 | 精品国内片67194| 欧美日韩一区二区视频在线观看| 亚洲欧美激情在线| 在线成人av网站| 欧美韩日精品| 日韩精品视频网| 日韩视频免费观看高清完整版 | 国产精品有限公司| 国产一区不卡在线| 一区在线观看视频| 欧美久久久久久蜜桃| 欧美精品国产一区| 青青草原综合久久大伊人精品 | 国产又粗又猛又爽又黄91精品| 国产一区二区三区视频在线播放| 蜜桃av一区二区三区电影| 欧美aa在线视频| 韩国女主播一区二区三区| 国产成人精品www牛牛影视| 成人国产精品免费观看视频| 欧美性色aⅴ视频一区日韩精品| 夜夜揉揉日日人人青青一国产精品 | 国产精品日韩精品欧美精品| 国产盗摄精品一区二区三区在线| 亚洲婷婷综合色高清在线|