如何在Python 2中同时读取和共享和处理来自并行进程的数据?

时间:2017-11-29 16:23:32

标签: python multithreading python-multithreading

这是我的问题。 我正在研究一个从三个不同设备获取数据的系统(每次,我想启动一个执行" read_data"循环的过程)。

从实时记录的三个数据中,我想在其上添加一个循环,这将对这些数据执行操作。

Ex(明显非常糟糕的语义,但是用于理解这个想法):

Class Sensor1:
read_s1():
 data_s1 = ...
Class Sensor2:
read_s2():
 data_s2 = ...
Class Sensor3:
read_s3():
 data_s3 = ...

main:
read_s1.start()
read_s2.start()
read_s3.start()

while True: #processing and acting regarding realtime data from the three sensors
   if read_s1.data_s1/read_s2.data_s2 + read_s3.data_s3 == 2:
               #do something 

我尝试使用线程和多进程,但我无法启动三个线程来读取并保存传入数据的变量,然后在需要时从外部循环访问这些数据。

1 个答案:

答案 0 :(得分:0)

我将尝试更具体:

我确切地说:

thread_1:
   while not e.isSet():
         data1 = read_data1()
thread_2:
   while not e.isSet():
         data2 = read_data2()
thread_3:
   while not e.isSet():
         data3 = read_data3()

if __name__ == 'main':
      thread_1.start()
      thread_2.start()
      thread_3.start()
      while not e.isSet():
            if data1 = 2 and data2 = 3 and data3=4:
                     #do something

我想如何使用锁? 每个线程通过迭代具有不同的执行时间,因为对于每个传感器,数据的读取具有不同的时间。 非常感谢你!