python 筆記 之 multiprocess組件Lock

'''
multiprocess組件Lock
'''
import multiprocessing
import time


def add1(lock,value,number):
    with lock: # 加鎖
        print("start add1 number={0}".format(number))
        for i in range(1,5):
            number += value
            time.sleep(0.3)
            print("number add1 = {0}".format(number))

def add3(lock,value,number):
    lock.acquire() #加鎖
    print("start add3 number={0}".format(number))
    try:
        for i in range(1,5):
            number += value
            time.sleep(0.3)
            print("number add3 = {0}".format(number))
    except Exception as e :
        raise e
    finally:
        lock.release() #解鎖

if __name__ == '__main__':
    print("start main")
    number = 0
    lock = multiprocessing.Lock()
    p1 = multiprocessing.Process(target=add1 ,args=(lock,1,number))
    p3 = multiprocessing.Process(target=add3 ,args=(lock,3,number))
    p1.start()
    p3.start()
    print("end main")
相關文章
相關標籤/搜索