我需要运行两个线程。第一个是传感器,第二个是电机。 我需要以两种不同的延迟时间并行运行这两个线程,并且需要在它们之间进行通信。这是我的试用码。在这里,马达线程只运行一次并打印
这是密码
from queue import Queue
from threading import Thread
import time
def sensor(numbers,q):
for n in numbers:
q.put(n*n)
print (n*n)
time.sleep(1) # Add some delay here
def motor():
a=q.get()
if (a<10):
print("good")
time.sleep(2) # Add some delay here
else:
print ("bad")
time.sleep(2) # Add some delay here
if __name__=="__main__":
numbers = [1,2,3,4,5,6,7,8]
q= Queue()
p= Thread(target=sensor , args = (numbers,q))
r= Thread(target = motor)
p.start()
r.start()
你知道吗` 这是我得到的结果
1
good
4
9
16
25
36
49
64
我需要得到好或坏的评论后,每个数字。你知道吗
我会这样做的。首先,
motor
任务应该是一个循环,以便在运行时从Queue
中检索多个项。为了告诉它何时停止,可以在队列中放入一个特殊值(标记)来指示任务停止(中断循环并退出)。你知道吗完成之后,您可以通过调用它的
join()
方法等待它完成。你知道吗这就是我的意思:
函数
motor
调用方法q.get()
,该方法只从队列中返回一个项,这样它只打印一个结果。你知道吗您必须遍历队列直到它为空
相关问题 更多 >
编程相关推荐