Python實現(xiàn)多進程共享數(shù)據(jù)的方法分析
本文實例講述了Python實現(xià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('這是進程{} {}'.format(number, a_list)) print('這是進程{} {}'.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')
輸出:
這是進程0 [0] 這是進程0 [0, 1] 這是進程0 [0, 1, 2] 這是進程0 [0, 1, 2, 3] 這是進程1 [0] 這是進程0 [0, 1, 2, 3, 4] 這是進程1 [0, 1] 這是進程0 [0, 1, 2, 3, 4, 5] 這是進程1 [0, 1, 2] 這是進程1 [0, 1, 2, 3] 這是進程1 [0, 1, 2, 3, 4] 這是進程1 [0, 1, 2, 3, 4, 5] 這是進程0 [0, 1, 2, 3, 4, 5, 6] 這是進程0 [0, 1, 2, 3, 4, 5, 6, 7] 這是進程0 [0, 1, 2, 3, 4, 5, 6, 7, 8] 這是進程1 [0, 1, 2, 3, 4, 5, 6] 這是進程0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 這是進程0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 這是進程1 [0, 1, 2, 3, 4, 5, 6, 7] 這是進程1 [0, 1, 2, 3, 4, 5, 6, 7, 8] 這是進程1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 這是進程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('這是進程{} {}'.format(number, a_list)) print('這是進程{} {}'.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')
輸出:
這是進程0 [0, 0] 這是進程0 [0, 0, 1] 這是進程0 [0, 0, 1, 2] 這是進程0 [0, 0, 1, 2, 3] 這是進程0 [0, 0, 1, 2, 3, 4] 這是進程1 [0, 0, 1, 2, 3, 4, 5] 這是進程0 [0, 0, 1, 2, 3, 4, 5, 1] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5] 這是進程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6] 這是進程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7] 這是進程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7] 這是進程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8] 這是進程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8] 這是進程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9] 這是進程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
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python進程與線程操作技巧總結》、《Python Socket編程技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python實現(xiàn)判斷給定列表是否有重復元素的方法
這篇文章主要介紹了Python實現(xiàn)判斷給定列表是否有重復元素的方法,列舉了2種列表判斷方法,涉及Python針對列表的遍歷、統(tǒng)計、判斷等相關操作技巧,需要的朋友可以參考下2018-04-04python pandas模塊進行數(shù)據(jù)分析
Python的Pandas模塊是一個強大的數(shù)據(jù)處理工具,可以用來讀取、處理和分析各種數(shù)據(jù),本文主要介紹了python pandas模塊進行數(shù)據(jù)分析,具有一定的參考價值,感興趣的可以了解一下2024-01-01Python 數(shù)據(jù)化運營之KMeans聚類分析總結
這篇文章主要介紹了Python 數(shù)據(jù)化運營KMeans聚類相關的一些總結,感興趣的話一起來閱讀下文吧2021-08-08