Python:如何让线程在超时后自行终止?
我正在编写一个多线程 Python 应用程序,它与服务器建立许多 TCP 连接。每个连接都是在单独的线程上完成的。有时线程会挂起很长时间,这是我不希望的。如何让线程在给定时间段后自行终止?从主线程如何确定子线程自行终止?
如果可能的话,我希望有一段代码展示如何做到这一点。谢谢。
更新 系统是Ubuntu 9:10
I'm writing a multi threaded Python app that makes many TCP connections to servers. Each connection is done on a separate thread. Sometimes the thread hangs for a long time which I don't want. How can I get the thread to kill itself after some given time period? From the main thread how can I determine that the child thread killed itself?
If possible I would appreciate a snippet of code showing how to do this. Thanks.
Update
The system is Ubuntu 9:10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
简短的回答:只需让 def run() 结束即可。
因此,如果您正在等待来自套接字的数据,请设置超时,然后如果发生超时,只需中断您应该拥有的时间,线程就会被杀死。
您可以使用 isAlive() 方法从主线程检查线程是否处于活动状态。
Short answer: Just make the def run() end.
So, if you are waiting for data from a socket, do it with timeout, then if timeout occur just break the while that you should have, and the thread will be killed.
You can check from main thread if a thread is alive with isAlive() method.