国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 多線程共享全局變量的優(yōu)劣

瀏覽:17日期:2022-07-10 10:01:47

一、多線程共享全局變量

首先我們來回憶下在函數(shù)中修改全局變量的情況。

在一個(gè)函數(shù)中,對(duì)全局變量進(jìn)行修改的時(shí)候,到底是否需要使用 global 進(jìn)行說明,要看是否對(duì)全局變量的執(zhí)行指向進(jìn)行了修改。

如果修改了執(zhí)行指向,即讓全局變量指向了一個(gè)新的地方,那么必須使用 global。

如果僅僅是修改了指向的空間中的數(shù)據(jù),此時(shí)不是必須要使用 global。

我們來看一個(gè)例子,在這個(gè)例子中,讓一個(gè)子線程對(duì)全局變量 +1 操作,另一個(gè)子線程只打印全局變量,看看數(shù)據(jù)是否共享。

from threading import Threadimport timeg_num = 100def work1(): global g_num g_num += 1 print('----in work1, g_num is %d---' % g_num)def work2(): print('----in work2, g_num is %d---' % g_num)def main(): print('---線程創(chuàng)建之前g_num is %d---' % g_num) t1 = Thread(target=work1) t1.start() # 延時(shí)一會(huì),保證t1線程中的事情做完 time.sleep(1) t2 = Thread(target=work2) t2.start() time.sleep(1) print('---線程創(chuàng)建之后g_num is %d---' % g_num)if __name__ == '__main__': main()

如果子線程2打印出來的結(jié)果是100,說明全局變量不共享。

如果子線程2打印出來的數(shù)據(jù)是101,說明全局變量共享。

運(yùn)行結(jié)果:

---線程創(chuàng)建之前g_num is 100-------in work1, g_num is 101-------in work2, g_num is 101------線程創(chuàng)建之后g_num is 101---

上面的例子說明,多線程是共享全局變量的。

二、列表當(dāng)做實(shí)參傳遞到線程中

在上面,我們驗(yàn)證了多線程之間是共享全局變量的。

我們也可以將變量當(dāng)作實(shí)參傳遞到線程中,來驗(yàn)證多線程中是共享數(shù)據(jù)的。

from threading import Threadimport timedef work1(nums): nums.append(44) print('----in work1---', nums)def work2(nums): print('----in work2---', nums)g_nums = [11, 22, 33]t1 = Thread(target=work1, args=(g_nums,))t1.start()# 延時(shí)一會(huì),保證t1線程中的事情做完time.sleep(1)t2 = Thread(target=work2, args=(g_nums,))t2.start()

運(yùn)行結(jié)果:

----in work1--- [11, 22, 33, 44]----in work2--- [11, 22, 33, 44]

那為什么多個(gè)線程之間要共享全局變量,有什么好處么?

因?yàn)槎嗳蝿?wù)往往配合使用。

在一個(gè)進(jìn)程內(nèi)的所有線程共享全局變量,就可以很方便在多個(gè)線程間共享數(shù)據(jù)。

缺點(diǎn)就是,線程是對(duì)全局變量隨意修改可能造成多線程之間對(duì)全局變量的混亂(即線程非安全)。

以上就是python 多線程共享全局變量的優(yōu)劣的詳細(xì)內(nèi)容,更多關(guān)于python 多線程共享全局變量的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日韩一区二区三 | 免费观看欧美精品成人毛片能看的 | 成人欧美一区二区三区 | 免费看孕妇毛片全部播放 | 久久久久香蕉视频 | 综合在线播放 | 精品国产香蕉在线播出 | 亚洲欧美日韩精品久久亚洲区 | 精品久久成人 | 91久久精品一区二区三区 | 免费一级毛片在线播放欧美 | 精品一区二区三区五区六区 | 欧美一级视频在线观看 | www.黄色大片 | 德国女人一级毛片免费 | 国产精品久久久久久久y | 男人的天堂视频在线观看 | 国产大陆精品另类xxxx | 成 人 a v黄 色 | 日本亚州在线播放精品 | 亚洲成人免费在线观看 | 国产视频合集 | 成人毛片视频免费网站观看 | 国产精品成人在线 | 久久久青青久久国产精品 | 亚洲成人在线视频 | 日本免费视 | 国产激情视频在线播放 | 欧美做爰野外在线视频观看 | 免费一级肉体全黄毛片 | 欧美一区二区三区在线视频 | 久久网视频 | 怡红院免费的全部视频国产a | 亚洲天堂网视频 | 亚洲欧美在线不卡 | 全部免费的毛片视频观看 | 超矿碰人人超人人看 | 高跟丝袜美女一级毛片 | 亚洲美女视频网 | 久久久精品成人免费看 | 在线播放成人毛片免费视 |