被threads can only be started once这个问题搞伤了,查了很多资料,大概的思路就是重新创建一个对象,没毛病
因为我是需要通过MQ接收消息来开启关闭线程,用户什么时候点击发过来消息是未知的,所以用定时器的方式是不行的
搞定这个问题的方式如下:
①假如我有个线程:
def func_1():
while True:
print("解决线程问题")
time.sleep(2)
②每次接收到消息的时候创建一个线程
i = 1
a="thread"+str(i)
a = threading.Thread(target=func_1)
if a.isAlive() is False: #判断线程的状态
a.start()
i=i+1
所以每接收到一次消息的时候,都会重新创建一个对象。