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)容感興趣的讀者可查看本站專題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 淺析Python中的多進(jìn)程與多線程的使用
- Python中使用多進(jìn)程來實(shí)現(xiàn)并行處理的方法小結(jié)
- Python控制多進(jìn)程與多線程并發(fā)數(shù)總結(jié)
- Python多線程、異步+多進(jìn)程爬蟲實(shí)現(xiàn)代碼
- 深入理解python多進(jìn)程編程
- python 多進(jìn)程通信模塊的簡(jiǎn)單實(shí)現(xiàn)
- 探究Python多進(jìn)程編程下線程之間變量的共享問題
- 淺談Python 多進(jìn)程默認(rèn)不能共享全局變量的問題
- 在Python程序中實(shí)現(xiàn)分布式進(jìn)程的教程
- python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子
- Python多進(jìn)程入門、分布式進(jìn)程數(shù)據(jù)共享實(shí)例詳解
相關(guān)文章
簡(jiǎn)單了解為什么python函數(shù)后有多個(gè)括號(hào)
這篇文章主要介紹了簡(jiǎn)單了解為什么python函數(shù)后有多個(gè)括號(hào),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python實(shí)現(xiàn)判斷給定列表是否有重復(fù)元素的方法
這篇文章主要介紹了Python實(shí)現(xiàn)判斷給定列表是否有重復(fù)元素的方法,列舉了2種列表判斷方法,涉及Python針對(duì)列表的遍歷、統(tǒng)計(jì)、判斷等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
python實(shí)現(xiàn)圖書館借閱系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖書館借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
python實(shí)現(xiàn)文本界面網(wǎng)絡(luò)聊天室
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)文本界面網(wǎng)絡(luò)聊天室,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
python pandas模塊進(jìn)行數(shù)據(jù)分析
Python的Pandas模塊是一個(gè)強(qiáng)大的數(shù)據(jù)處理工具,可以用來讀取、處理和分析各種數(shù)據(jù),本文主要介紹了python pandas模塊進(jìn)行數(shù)據(jù)分析,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Python 數(shù)據(jù)化運(yùn)營之KMeans聚類分析總結(jié)
這篇文章主要介紹了Python 數(shù)據(jù)化運(yùn)營KMeans聚類相關(guān)的一些總結(jié),感興趣的話一起來閱讀下文吧2021-08-08

