日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python多进程内存共享_python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array...

發布時間:2023/12/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python多进程内存共享_python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

# -*- coding: utf-8 -*-

"""

多進程 數據共享 共享變量 Value,Array

邏輯:

2個進程,對同一份數據,一個做加法,一個做加法,各做10次

用法:

1. 創建共享變量 o = Value(‘i‘,1000) or o = Array(‘i‘,list) 指定不同的類型

2. 啟動子進程通過 o.value or o[i] 存取變量的值

3. 必要使用鎖操作函數 o.acquire() o.release()

參考:

get_lock() 返回共享變量使用的Rlock 實例

get_obj() 返回共享變量數據類型

"""

from multiprocessing import Process,Value,Array

import time

import random

# 對共享變量加法

def save_money(money):

money.acquire() # 申請鎖

for i in range(10):

time.sleep(0.3)

change = random.randint(1,200)

money.value += change

print "\n ",money.value,change

money.release() # 釋放鎖

# 對共享變量減法

def take_money(money):

money.acquire()

for i in range(10):

time.sleep(0.5)

change = random.randint(1,150)

money.value -= change

print "\n ",money.value," ",-change

money.release()

# 對共享變量加法

def save_money2():

m.acquire() # 申請鎖

m[2] = 8

print [ i for i in m ]

m.release() # 釋放鎖

# 對共享變量減法

def take_money2():

m.acquire() # 申請鎖

print [ i for i in m ]

m.release() # 釋放鎖

if True:

m = Array(‘i‘,[1,2,3,4,5]) # 放在main下面,就不是全局了

if __name__ == ‘__main__‘:

# 共享內存,可以多個進程存取,整型,變量名money,變量值1000

money = Value(‘i‘,1000)

d = Process(target=save_money, args=(money,))

d.start()

w = Process(target=take_money, args=(money,))

w.start()

d.join()

w.join()

Process(target=save_money2).start()

Process(target=take_money2).start()

print "end"

總結

以上是生活随笔為你收集整理的python多进程内存共享_python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。