Использование очереди Joinablequeue, а также знание производитель-потребитель модель

очередь

Изолированы друг от друга между процессами, для достижения связи (IPC) между процессами, модуль поддерживает два нескольких процессы формы: очереди и трубопровод, эти два метода являются использованием передачи сообщений

Создание очереди класса:

Очередь ([MAXSIZE]): создать общую очередь процесса, очередь является многозадачностью безопасных очередей, вы можете использовать очереди достижения высокой передачи данных между несколькими процессами.

Введение и параметры:

MAXSIZE это максимальное количество записей в очереди, нет ограничения на размер их не опускается.

Методы Введение:

говоря: Способ вставки данных в метод очереди .Put имеет два дополнительных параметра: заблокирован и тайм-аута.

получает: способ может прочитать и удалить элемент из одной и той же очереди, получить метод имеет два дополнительных параметров :. заблокирован и тайм-аут.

put_nowait: использовать тот же положить, по умолчанию заблокирован = False

get_nowait: использовать те же получить, по умолчанию заблокировано = False

пусто: возвращает Истину, если очередь пуста, когда вы вызываете этот метод, результаты не являются надежными, например, в процессе возвращения Истинного, если очередь присоединился к проекту.

полный: При вызове этого метод возвращает Истину, если очередь полна, результаты не являются надежными, например, в процессе возвращения Истинного, если элемент в очереди удаляются.

QSize: Возвращает очередь правильное число текущих проектов, результаты выглядят ненадежными, после возвращения результата, очередь может измениться.

Производитель и потребитель модель

from multiprocessing import Process,JoinableQueue
import time,random
def producer(q,name):
    for i in range(10):
        print(f'生产者生产了{name}')
        time.sleep(random.randint(1, 3))
        q.put(f'{name}')

def consumer(q,name):
    while True:
        res = q.get()
        time.sleep(random.randint(1, 3))
        print(f'{name}买到了{res}')
        q.task_done()

if __name__ == '__main__':
    que = JoinableQueue()
    p = Process(target=producer, args=(que, 'apple'))
    c = Process(target=consumer, args=(que, 'con'))
    p.start()
    c.daemon = True
    c.start()
    p.join()
    que.join()

рекомендация

отwww.cnblogs.com/cheng825/p/11529087.html
рекомендация