久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

python3.x - python多線程如何修改數據?

瀏覽:104日期:2022-09-19 10:48:24

問題描述

代碼比較簡單

import multiprocessingimport timelist1 = [1,2,3]def func(msg): list1[0] = 99 return 'done ' + msgif __name__ == '__main__': pool = multiprocessing.Pool(processes=4) for i in range(10):msg = 'hello %d' % (i)pool.apply_async(func, (msg,)) pool.close() pool.join() print (list1)

因為真實的環境比較多,所以簡化了代碼,我大概的需求就是list1是一個比較多的數據列表,然后在多線程處理的時候,每次更新其中一項數據...

但是我運行以后,發現list1還是[1,2,3] , 我理想應該是[99,2,3]

有高手指點一下要如何實現嗎?

問題解答

回答1:

不好意思,你用的multiprocessing是多進程而不是多線程,每個進程中的變量都是獨立的,

你應該使用threading,這個才是多線程

如果你堅持用multiprocessing,就必須用共享變量,你可以將list里的數據存入Queue中,Queue是python中的共享隊列,用于多進程通信的

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 新田县| 南充市| 长沙市| 剑河县| 拜泉县| 烟台市| 丘北县| 文化| 三原县| 中宁县| 梓潼县| 永川市| 红安县| 海阳市| 合水县| 兴国县| 河北区| 宁乡县| 台北县| 固始县| 闸北区| 治多县| 嘉兴市| 加查县| 文水县| 元阳县| 错那县| 花莲市| 阳高县| 鱼台县| 蓬溪县| 泾川县| 阜城县| 桦南县| 武夷山市| 上饶市| 滨州市| 通化县| 包头市| 江安县| 抚松县|