Python 线程同步的设计帮助
我正在编写一个python程序来验证设备事件 我不断地从一个设备的串行端口读取一些数据。当我在设备的串行端口上写东西时,设备会在串行端口上写一个字符串,我必须读取该字符串。从串行端口连续读取部分是在一个单独的工作线程中,我逐行读取它并将其写入线程。设备连续写入一些数据,并在serail端口上写入事件描述 更具体地说,当我在设备上写东西时,它会在设备上生成一个事件。事件的描述将写回串行端口。我必须将其读回并验证事件是否已发生 现在,当我在一个线程中逐行读取设备输出时发生了什么,当我写一些东西并开始读取要发生的事件描述时,该事件的输出已经消失,下一个其他输出行正在被读取。如何同步此操作Python 线程同步的设计帮助,python,multithreading,synchronization,Python,Multithreading,Synchronization,我正在编写一个python程序来验证设备事件 我不断地从一个设备的串行端口读取一些数据。当我在设备的串行端口上写东西时,设备会在串行端口上写一个字符串,我必须读取该字符串。从串行端口连续读取部分是在一个单独的工作线程中,我逐行读取它并将其写入线程。设备连续写入一些数据,并在serail端口上写入事件描述 更具体地说,当我在设备上写东西时,它会在设备上生成一个事件。事件的描述将写回串行端口。我必须将其读回并验证事件是否已发生 现在,当我在一个线程中逐行读取设备输出时发生了什么,当我写一些东西并开始
在设计此部件时,有什么可以帮助我的吗?如果您只是在异步IO中使用线程,那么最好不要使用线程并使用select.select,或者如果您想让自己更轻松,甚至可以使用asyncore
代码片段如下所示: 类串行通信:
__init__(self,comport):
self.comport = comport
self.readSerialPortThread = ReadSearialPortThread(self.comport)
def writeStringToSerialPort(someString):
self.comport.write(someString)
def waitfordata(someString):
#I have to continuously read data from serial port till we someString.
在ReadSearialPort中,serialport中的线程数据正在连续读取设备信息值。当我使用writeStringToSerialPort()写入数据时,设备会向串行端口输出一些数据。我必须从函数waitfordata读取这些数据,以验证设备的响应
现在发生的是,当我编写一些值并调用waitfordata()时,readSerialPortThread已经读取了所需的值,并继续读取一些其他值,如设备信息。所以我失去了那里的价值观。我想知道如何将其同步。您是否有任何关于您现在所做工作的小代码片段?如果您一直在从设备读取数据,那么就不应该“漏掉”一行。此外,这个读写过程是否需要两个独立的线程?这听起来像是一个针对单个线程的请求-响应系统。它是否应该是异步的,在稍后的某个时候,读取器将验证发布的事件,并且编写器可以继续前进?代码片段如下:类SerialCom:\uuuu init\uuuuu(self,comport):self.comport=comport self.readSerialPortThread=ReadSearialPortThread(self.comport)def writeStringToSerialPort():self.comport.write(somedata)请仅对实际答案使用Post应答按钮。您应该修改原始问题以添加其他信息。