Python實(shí)現(xiàn)多進(jìn)程共享數(shù)據(jù)的方法分析
本文實(shí)例講述了Python實(shí)現(xiàn)多進(jìn)程共享數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
示例一:
# -*- coding:utf-8 -*-
from multiprocessing import Process, Manager
import time
import random
def kkk(a_list, number):
for i in range(10):
a_list.append(i)
time.sleep(random.randrange(2))
print('這是進(jìn)程{} {}'.format(number, a_list))
print('這是進(jìn)程{} {}'.format(number, a_list))
def jjj(a_list):
for i in range(2):
process = Process(target=kkk, args=(a_list, i))
process.start()
if __name__ == '__main__':
a_list = []
process_0 = Process(target=jjj, args=(a_list,))
process_0.start()
process_0.join()
print(a_list)
print(len(a_list))
print('it\'s ok')
輸出:
這是進(jìn)程0 [0] 這是進(jìn)程0 [0, 1] 這是進(jìn)程0 [0, 1, 2] 這是進(jìn)程0 [0, 1, 2, 3] 這是進(jìn)程1 [0] 這是進(jìn)程0 [0, 1, 2, 3, 4] 這是進(jìn)程1 [0, 1] 這是進(jìn)程0 [0, 1, 2, 3, 4, 5] 這是進(jìn)程1 [0, 1, 2] 這是進(jìn)程1 [0, 1, 2, 3] 這是進(jìn)程1 [0, 1, 2, 3, 4] 這是進(jìn)程1 [0, 1, 2, 3, 4, 5] 這是進(jìn)程0 [0, 1, 2, 3, 4, 5, 6] 這是進(jìn)程0 [0, 1, 2, 3, 4, 5, 6, 7] 這是進(jìn)程0 [0, 1, 2, 3, 4, 5, 6, 7, 8] 這是進(jìn)程1 [0, 1, 2, 3, 4, 5, 6] 這是進(jìn)程0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 這是進(jìn)程0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 這是進(jìn)程1 [0, 1, 2, 3, 4, 5, 6, 7] 這是進(jìn)程1 [0, 1, 2, 3, 4, 5, 6, 7, 8] 這是進(jìn)程1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 這是進(jìn)程1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [] 0 it's ok Process finished with exit code 0
示例二:
使用 Manager
# -*- coding:utf-8 -*-
from multiprocessing import Process, Manager
import time
import random
def kkk(a_list, number):
for i in range(10):
a_list.append(i)
time.sleep(random.randrange(2))
print('這是進(jìn)程{} {}'.format(number, a_list))
print('這是進(jìn)程{} {}'.format(number, a_list))
def jjj(a_list):
for i in range(2):
process = Process(target=kkk, args=(a_list, i))
process.start()
if __name__ == '__main__':
manager = Manager()
a_list = manager.list()
# a_list = []
process_0 = Process(target=jjj, args=(a_list,))
process_0.start()
process_0.join()
print(a_list)
print(len(a_list))
print('it\'s ok')
輸出:
這是進(jìn)程0 [0, 0] 這是進(jìn)程0 [0, 0, 1] 這是進(jìn)程0 [0, 0, 1, 2] 這是進(jìn)程0 [0, 0, 1, 2, 3] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4, 5, 1] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8] 這是進(jìn)程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9] 這是進(jìn)程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9] [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9] 20 it's ok Process finished with exit code 0
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 淺析Python中的多進(jìn)程與多線程的使用
- Python中使用多進(jìn)程來(lái)實(shí)現(xiàn)并行處理的方法小結(jié)
- Python控制多進(jìn)程與多線程并發(fā)數(shù)總結(jié)
- Python多線程、異步+多進(jìn)程爬蟲(chóng)實(shí)現(xiàn)代碼
- 深入理解python多進(jìn)程編程
- python 多進(jìn)程通信模塊的簡(jiǎn)單實(shí)現(xiàn)
- 探究Python多進(jìn)程編程下線程之間變量的共享問(wèn)題
- 淺談Python 多進(jìn)程默認(rèn)不能共享全局變量的問(wèn)題
- 在Python程序中實(shí)現(xiàn)分布式進(jìn)程的教程
- python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子
- Python多進(jìn)程入門(mén)、分布式進(jìn)程數(shù)據(jù)共享實(shí)例詳解
相關(guān)文章
Python程序設(shè)計(jì)入門(mén)(2)變量類(lèi)型簡(jiǎn)介
這篇文章主要介紹了Python變量類(lèi)型,需要的朋友可以參考下2014-06-06
Python進(jìn)制轉(zhuǎn)換與反匯編實(shí)現(xiàn)流程介紹
這篇文章主要介紹了Python進(jìn)制轉(zhuǎn)換與反匯編的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10
python操作xlsx文件的包openpyxl實(shí)例
下面小編就為大家分享一篇python操作xlsx文件的包openpyxl實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python連接Redis庫(kù)常見(jiàn)操作全面詳解
本文將介紹如何在Python中進(jìn)行Redis操作,包括連接Redis、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)檢索和其他常見(jiàn)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
python函數(shù)的萬(wàn)能參數(shù)傳參詳解
這篇文章主要介紹了python函數(shù)的萬(wàn)能參數(shù)傳參詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python中.py文件打包成exe可執(zhí)行文件詳解
這篇文章主要給大家介紹了在Python中.py文件打包成exe可執(zhí)行文件的相關(guān)資料,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
簡(jiǎn)單了解python調(diào)用其他腳本方法實(shí)例
這篇文章主要介紹了簡(jiǎn)單了解python調(diào)用其他腳本方法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

