Python线程重启

时间:2012-02-21 22:20:37

标签: python multithreading sockets reset

运行时我有一个线程,它有一个无限循环。 当另一个线程停止时,我希望再次重置所有线程, 线程具有在彼此之间传输数据的套接字。 我正在使用

node1._Thread__stop()

用于停止线程运行的函数,但是当我尝试创建一个具有相同名称的新线程时:

node1 = node.node(8081,8082,token,1,"Node A",0)
node1.start()

它发出错误

[Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted.

我不确定stop函数是否适用于线程,因为我有一个套接字的超时子句,如果它没有收到打印超时的任何内容。发生错误后打印。

什么是更好的线程/套接字重置

1 个答案:

答案 0 :(得分:0)

我不确定你在找什么。不过,我建议您查看相关问题answer

重要的一点是,当一个线程持有像你的情况一样的套接字之类的资源时,终止一个线程并不是一个好主意。正确的方法是使用任何同步机制(上面引用的答案使用threading.Event的示例,但如果它更适合您的需要,它可以是threading.Condition )可以释放资源,或者根据需要重置一些内部数据,从头开始。

我希望这会有所帮助。