本文共 1114 字,大约阅读时间需要 3 分钟。
from multiprocessing import Process, Queue, Lockfrom datetime import datetimeimport numpy as npimport timeimport osdef func1(q, lock): print(f'get into func1: pid: {os.getpid()}') for i in range(10): d = {'fun_1': {str(i) + '-' + datetime.now().strftime('%H:%M:%S.%f'): np.random.randint(1000)}} with lock: q.put(d) time.sleep(1)def func2(q, lock): print(f'get into func2: pid: {os.getpid()}') for i in range(10): d = {'fun_2': {str(i) + '-' + datetime.now().strftime('%H:%M:%S.%f'): np.random.random()}} with lock: q.put(d) time.sleep(1.5)def func3(q): print(f'get into func3: pid: {os.getpid()}') for i in range(30): d = q.get() if len(d): print('fun3 received:') print(d) time.sleep(0.01)if __name__ == '__main__': q = Queue() lock = Lock() p1 = Process(target=func1, args=(q, lock)) p1.daemon = True p2 = Process(target=func2, args=(q, lock)) p2.daemon = True p3 = Process(target=func3, args=(q, )) p3.daemon = True p1.start() p2.start() p3.start()
转载地址:http://emhwb.baihongyu.com/