最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python多進程實現(xiàn)數(shù)據(jù)共享的示例代碼

 更新時間:2025年01月15日 10:45:15   作者:木瓜星靈  
本文介紹了Python中多進程實現(xiàn)數(shù)據(jù)共享的方法,包括使用multiprocessing模塊和manager模塊這兩種方法,具有一定的參考價值,感興趣的可以了解一下

背景

 安卓ui自動化框架,使用的是多進程實現(xiàn)的多設(shè)備并行。而在撈取數(shù)據(jù)做數(shù)據(jù)匯總時,需要多進程可以數(shù)據(jù)共享。

進程、進程創(chuàng)建

程序編寫完沒有運行稱之為程序。正在運行的代碼就是進程。在Python3語言中,對多進程支持的是multiprocessing模塊和subprocess模塊。multiprocessing模塊為在子進程中運行任務(wù)、通訊和共享數(shù)據(jù),以及執(zhí)行各種形式的同步提供支持。

Python提供了非常好用的多進程包multiprocessing,只需要定義一個函數(shù),Python會完成其他所有事情。借助這個包,可以輕松完成從單進程到并發(fā)執(zhí)行的轉(zhuǎn)換。multiprocessing支持子進程、通信和共享數(shù)據(jù)。語法格式如下:

Process([group [, target [, name [, args [, kwargs]]]]])

進程間通信

多線程:共享變量很簡單,直接定義全局 global 變量即可

多進程:全局變量在多個進程中不共享,進程之間的數(shù)據(jù)是獨立的,默認情況下互不影響。

from multiprocessing import Process
num=1
def work1():
    global num
    num+=5
    print('子進程1運行,num:',num)

def work2():
    global num
    num += 10
    print('子進程2運行,num:',num)


if __name__=='__main__':
    print('父進程開始運行')
    p1=Process(target=work1)
    p2=Process(target=work2)
    p1.start()
    p2.start()
    p1.join()
    p2.join()

 執(zhí)行結(jié)果

父進程開始運行
子進程1運行,num:6
子進程2運行,num:11

  • 但是python也提供了這樣的標準庫。process進程的manager模塊和pool進程的manager模塊。 

 進程間共享數(shù)據(jù)

  • 共享數(shù)值型數(shù)據(jù)

主進程與子進程共用一個value

import multiprocessing


def func(num):
    num.value = 2  


if __name__ == "__main__":
    num = multiprocessing.Value("d", 1) 
    p = multiprocessing.Process(target=func, args=(num,))
    p.start()
    p.join()
  •  共享數(shù)組型數(shù)據(jù)

子進程改變dict,list,主進程dict,list跟著改變

共享list實踐

現(xiàn)在想把每個手機的自動化運行結(jié)果的元組拿出來分析,使用共享list的方式

# 多進程中,同一個變量,各自有一份拷貝存在于每個進程中, 互不影響;
    # 多線程中,所有變量都由所有線程共享,任何一個變量都可以被任何一個線程修改.
    # multiprocessing.Manager()實現(xiàn)多進程中的數(shù)據(jù)共享
    RESULT_TIMEPARAM = multiprocessing.Manager().list()
    RESULT_REPORT_NAME_LIST = multiprocessing.Manager().list()
    RESULT_TUPLE_LIST = multiprocessing.Manager().list()
    devices_pool = []
    for tmp_udid in ConfigData().mobile_data().keys():
        devices_pool.append(multiprocessing.Process(target=run_testcase, args=(tmp_udid,RESULT_TIMEPARAM,RESULT_REPORT_NAME_LIST,
                                                                               RESULT_TUPLE_LIST )))

    for devices_udid in devices_pool:
        devices_udid.start()

    for devices_udid in devices_pool:
        devices_udid.join()

得到的RESULT_TUPLE_LIST:

[('2022-10-11 09:59:46', '共 1,通過 1,通過率= 100.00%', 'Android', '7.1.2', 'samsung', '3.9.3.018'), ('2022-10-11 09:59:47', '共 1,通過 1,通過率= 100.00%', 'Android', '10', 'OPPO', '3.9.3.018')]

到此這篇關(guān)于python多進程實現(xiàn)數(shù)據(jù)共享的示例代碼的文章就介紹到這了,更多相關(guān)python多進程數(shù)據(jù)共享內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 理解python正則表達式

    理解python正則表達式

    這篇文章主要介紹了python正則表達式,在python中,對正則表達式的支持是通過re模塊來支持的,想要了解python正則表達式的朋友可以參考一下
    2016-01-01
  • python中h5py開源庫的使用樣例詳解

    python中h5py開源庫的使用樣例詳解

    這篇文章主要介紹了python中的h5py開源庫的使用,本文只是簡單的對h5py庫的基本創(chuàng)建文件,數(shù)據(jù)集和讀取數(shù)據(jù)的方式進行介紹,需要的朋友可以參考下
    2022-05-05
  • Python開發(fā)教程之os.path的常用操作總結(jié)

    Python開發(fā)教程之os.path的常用操作總結(jié)

    這篇文章主要介紹了Python開發(fā)教程之os.path的常用操作,os模塊最常用的功能之一就是文件和目錄操作,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-05-05
  • Python3.9.1中使用match方法詳解

    Python3.9.1中使用match方法詳解

    這篇文章主要介紹了Python3.9.1中使用match方法詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python實現(xiàn)冒泡排序算法的完整實例

    Python實現(xiàn)冒泡排序算法的完整實例

    這篇文章主要給大家介紹了關(guān)于Python實現(xiàn)冒泡排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Python日期操作學習筆記

    Python日期操作學習筆記

    字符串是使用靜態(tài)的方式進行存儲,只能讀而不能直接修改字符內(nèi)容。特別將一堆對字符串并在一起的時候,雖然可以直接相加,聽說這樣的速度奇慢,只有用其它函數(shù)的方式進行,好在也不太麻煩。
    2008-10-10
  • python使用Random隨機生成列表的方法實例

    python使用Random隨機生成列表的方法實例

    在日常的生活工作和系統(tǒng)游戲等設(shè)計和制作時,經(jīng)常會碰到產(chǎn)生隨機數(shù),用來解決問題,下面這篇文章主要給大家介紹了關(guān)于python使用Random隨機生成列表的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python的SimpleHTTPServer模塊用處及使用方法簡介

    Python的SimpleHTTPServer模塊用處及使用方法簡介

    這篇文章主要介紹了Python的SimpleHTTPServer模塊用處及使用方法簡介,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python內(nèi)置模塊pathlib.Path類操作目錄和文件的使用

    python內(nèi)置模塊pathlib.Path類操作目錄和文件的使用

    本文主要介紹了python內(nèi)置模塊pathlib.Path類操作目錄和文件的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-05-05
  • Python3實現(xiàn)配置文件差異對比腳本

    Python3實現(xiàn)配置文件差異對比腳本

    這篇文章主要介紹了Python3實現(xiàn)配置文件差異對比腳本,本文通過案例場景分析給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11

最新評論

安丘市| 司法| 朝阳市| 自贡市| 金阳县| 寻甸| 锡林郭勒盟| 巨鹿县| 罗山县| 镇安县| 辽宁省| 乌兰察布市| 重庆市| 金堂县| 兴山县| 义乌市| 扶余县| 融水| 浑源县| 中卫市| 元谋县| 饶平县| 闽清县| 长乐市| 元江| 新化县| 来安县| 天祝| 曲水县| 新巴尔虎右旗| 河间市| 桂平市| 绥芬河市| 辽源市| 凤庆县| 东海县| 延安市| 广昌县| 金昌市| 辽宁省| 饶河县|