Как получить данные из потока в реальном времени? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть поток во время построения, и мне нужно получить от него данные без каких-либо глобальных переменных. Можно ли получать данные в реальном времени без блока потока или чего-то еще? Пожалуйста, помогите.

def one():
  while True:
    a = data1
    something gonna here with var b from thread two

def two():
  while True:
    b = a from thread one
    something gonna here

def main():
  th1 = Thread(target=one)
  th2 = Thread(target=two)
  th1.start()
  th2.start()
  something gonna here with var a and var b

1 Ответ

0 голосов
/ 05 мая 2020

Вы можете использовать multiprocessing.Pipe или multiprocessing.Queue для отправки данных в разные потоки и процессы в python.

Реализация Pipe будет примерно такой

from multiprocessing import Pipe
 def one(connA):
  while True:
    a = data1
    connA.send([a])
    something gonna here with var b from thread two

def two(connB):
  while True:
    b = connB.recv() #receives [a] from thread one
    connB.send([b]) #send [b] to main thread
    something gonna here

def main():
  A,B=Pipe()
  th1 = Thread(target=one,args=(A))
  th2 = Thread(target=two,args=(B))
  th1.start()
  th2.start()
  something gonna here with var a and var b
  b=A.recv() # receive var b from 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...