麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python多進程同步Lock、Semaphore、Event實例

2020-02-23 06:12:52
字體:
來源:轉載
供稿:網友

同步的方法基本與多線程相同。

1) Lock

當多個進程需要訪問共享資源的時候,Lock可以用來避免訪問的沖突。
代碼如下:
import multiprocessing
import sys

def worker_with(lock, f):
    with lock:
        fs = open(f,"a+")
        fs.write('Lock acquired via with/n')
        fs.close()
       
def worker_no_with(lock, f):
    lock.acquire()
    try:
        fs = open(f,"a+")
        fs.write('Lock acquired directly/n')
        fs.close()
    finally:
        lock.release()

if __name__ == "__main__":

    f = "file.txt"
 
    lock = multiprocessing.Lock()
    w = multiprocessing.Process(target=worker_with, args=(lock, f))
    nw = multiprocessing.Process(target=worker_no_with, args=(lock, f))

    w.start()
    nw.start()

    w.join()
    nw.join()

在上面的例子中,如果兩個進程沒有使用lock來同步,則他們對同一個文件的寫操作可能會出現混亂。

2)Semaphore

Semaphore用來控制對共享資源的訪問數量,例如池的最大連接數。

代碼如下:
import multiprocessing
import time

def worker(s,i):
    s.acquire()
    print(multiprocessing.current_process().name + " acquire")
    time.sleep(i)
    print(multiprocessing.current_process().name + " release")
    s.release()

if __name__ == "__main__":
 
    s = multiprocessing.Semaphore(2)
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(s,i*2))
        p.start()

上面的實例中使用semaphore限制了最多有2個進程同時執行。

3)Event

Event用來實現進程間同步通信。

代碼如下:
import multiprocessing
import time

def wait_for_event(e):
    """Wait for the event to be set before doing anything"""
    print ('wait_for_event: starting')
    e.wait()
    print ('wait_for_event: e.is_set()->' + str(e.is_set()))

def wait_for_event_timeout(e, t):
    """Wait t seconds and then timeout"""
    print ('wait_for_event_timeout: starting')

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕欧美专区 | 中韩毛片 | 圆产精品久久久久久久久久久 | 免费专区 - 91爱爱 | 91青青| 中文字幕在线观看91 | 成人免费视频 | 91在线播放国产 | 二区三区四区视频 | 91成| 一分钟免费观看完整版电影 | 亚洲一区二区中文字幕在线观看 | 1024亚洲天堂| 欧美一级毛片大片免费播放 | 欧美性生活视频免费看 | 99精品国产小情侣高潮露脸在线 | 97久久曰曰久久久 | 亚洲天堂成人在线观看 | 久久国产精品免费视频 | 羞羞的视频 | 手机国产乱子伦精品视频 | 草草视频免费 | 久久久久久久久久网 | 性高跟鞋xxxxhd4kvideos | 亚洲成人国产综合 | 精精国产xxxx视频在线野外 | www.17c亚洲蜜桃 | 5a级毛片| 成人在线观看免费爱爱 | 国产又粗又爽又深的免费视频 | 三人弄娇妻高潮3p视频 | 黄色片视频观看 | 最新在线黄色网址 | 成年人在线视频观看 | 香蕉久久久久 | 一级在线视频 | 嗯~啊~用力~高h | 免费高清一级欧美片在线观看 | 国产亚洲精品久久久久婷婷瑜伽 | 国产一级一片免费播放 | 最新一区二区三区 |