1. 程式人生 > 實用技巧 >程序之間通訊(IPC) Inter Process communication

程序之間通訊(IPC) Inter Process communication

程序之間通訊(IPC) Inter Process communication

基於檔案 :同一臺機器上的多個程序之間通訊
    Queue 佇列
        基於socket的檔案級別的通訊來完成資料傳遞的
基於網路 :同一臺機器或者多臺機器上的多程序間通訊
    第三方工具(訊息中介軟體)
        memcache
        redis
        rabbitmq
        kafka

生產者消費者模型

​ 爬蟲的時候
​ 分散式操作 : celery
​ 本質 :就是讓生產資料和消費資料的效率達到平衡並且最大化的效率

import time
import random
from multiprocessing import Queue,Process

def consumer(q): # 消費者:通常取到資料之後還要進行某些操作
    for i in range(10):
        print(q.get())

def producer(q): # 生產者:通常在放資料之前需要先通過某些程式碼來獲取資料
    for i in range(10):
        time.sleep(random.random())
        q.put(i)

if __name__ == '__main__':
    q = Queue()
    c1 = Process(target=consumer,args=(q,))
    p1 = Process(target=producer,args=(q,))
    c1.start()
    p1.start()