Отправка сообщений Dynami c другому процессору - PullRequest
0 голосов
/ 09 июля 2020

Я хотел бы знать, если установка очереди в параметре класса, выполняемого в новом процессоре, в который мы динамически добавляем новые значения из основного процесса c, нарушает многопроцессорность? Это хорошая практика?

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

import asyncio
import multiprocessing
from PyQt5 import QtWidgets

class connection():

    def __init__(self):
        self.request_subscription()

    def request_subscription(self):
        self.queue = multiprocessing.Queue()
        b = multiprocessing.Process(target=Work, args=(self.queue,))
        b.start()

    def send(self):
        self.queue.put('test')


class Work:
    def __init__(self, queue):
        self.queue = queue
        loop = asyncio.get_event_loop()
        loop.create_task(self.test())
        loop.run_forever()

    async def test(self):
        while True:
            while not self.queue.empty():
                print(self.queue.get())
            await asyncio.sleep(1)

if __name__ == '__main__':
    app = QtWidgets.QApplication([])
    window = QtWidgets.QWidget()
    button = QtWidgets.QPushButton(window)

    a = connection()
    button.clicked.connect(a.send)

    window.show()
    app.exec_()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...