我正在寻找如何在 python 中执行多线程(2 个线程)。
我想要其中之一是不断地读取串口。读取每一帧并将它们保存到数据库中。我已经做了一个脚本来做到这一点。
对于第二个,我希望它监听一个套接字端口。当它从该端口接收到一些东西时,我希望它暂停第一个线程,向串行端口写入一些东西并写入套接字。之后,取消暂停第一个线程并返回侦听套接字端口。
我认为最好的主意是在那一刻暂停一个线程从另一个线程读取串口,因为如果我在第一个线程中通过串口读取答案,我必须将读取的值传递给第二个线程,这更复杂,是不是吗?
我已经有了在串口上写的部分,并检查了一些关于套接字部分的教程,所以我对此没有任何问题。但我还没有找到任何关于暂停一个线程和另一个线程的信息,我认为这是不可能的。
在这种情况下我该怎么办?
编辑:询问共享变量:所以我可以声明一个全局变量并制作如下内容:
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 中声明共享变量?或者它只是另一个变量....