[英]Pause one thread from other in python
我一直在尋找如何在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個全局變量,我可以通知線程1停止繼續進行下一次迭代,而使用global2,第二個線程知道何時不使用串行端口...
如何在python中聲明共享變量? 還是只是另一個變量...
我不確定您是否可以在進程之間直接共享對象,但是由於每個進程都可以與主進程共享對象,因此可以使用主進程來回傳遞它們:
http://docs.python.org/2/library/multiprocessing.html#exchanging-objects-between-processes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.