очередь
Изолированы друг от друга между процессами, для достижения связи (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()