Python:如何让线程在超时后自行终止?

发布于 2024-10-14 07:07:36 字数 198 浏览 3 评论 0原文

我正在编写一个多线程 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

为人所爱 2024-10-21 07:07:36

简短的回答:只需让 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文