我正在研究如何在python中执行多线程(2个线程)。在
我要他们中的一个一直在读串行端口。读取每个帧并将其保存到数据库中。我已经做了一个脚本来做这个。在
对于第二个,我希望它监听一个套接字端口。当它从那个端口接收到一些东西时,我希望它暂停第一个线程,向串行端口写入一些内容,然后写入套接字。之后,取消暂停第一个线程并返回到侦听套接字端口。在
我认为最好的办法是暂停一个线程从另一个线程读取串行端口,因为如果我在第1个线程中通过串行端口读取答案,我必须将读取的值传递给第二个线程,这会更复杂,不是吗?在
我已经有了写串口的部分,并检查了一些关于socket部分的教程,这样我就没有问题了。但是我还没有发现任何关于暂停一个线程和另一个线程,我认为这是不可能的。在
在这种情况下我该怎么办?在
编辑:询问有关共享变量的信息:这样我就可以声明一个全局变量,并生成如下内容:global1
global2
Thread 1:
while(global1 == 0)
do whatever
global2 = 1
thread 2:
wait socket
if dataReceived: global1 = 1
if global2 = 1 do whatever on serial port
global2 = 0
when finish global1 = 0
对于2个全局变量,我可以通知thread1停止以继续下一个迭代;对于global2,第二个线程知道串行端口何时不被使用。。。在
如何在python中声明共享变量?或者只是另一个变量。。。。在