看板 Python 關於我們 聯絡資訊
不好意思,我把 subprocess 看成 multiprocessing 所以沒有提到multiprocessing 下面這個範例應該可以達到他的需求 把lock之後的程式碼改成subprocess.Popen即可 from multiprocessing import Process, Queue, Lock import time import random def my_process(data, in_queue, out_queue, lock): if in_queue is not None: in_queue.get() if out_queue is not None: out_queue.put(0) lock.acquire() print data, 'start' lock.release() time.sleep(random.randint(1,4)) lock.acquire() print data, 'end' lock.release() if __name__ == '__main__': lock = Lock() q1 = Queue() q2 = Queue() p1 = Process(target=my_process, args=('p1', None, q1, lock)) p2 = Process(target=my_process, args=('p2', q1, q2, lock)) p3 = Process(target=my_process, args=('p3', q2, None, lock)) p1.start() p2.start() p3.start() p1.join() p2.join() p3.join() -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.84.23