【发布时间】:2011-06-15 14:45:26
【问题描述】:
我正在尝试编写一个监听套接字、标准输入并从文件描述符中读取的 unix 客户端程序。我将这些任务中的每一个分配给一个单独的线程,并让它们使用同步队列和信号量成功地与“主”应用程序通信。问题是当我想关闭这些子线程时,它们都会阻塞输入。此外,线程不能在线程中注册信号处理程序,因为在 Python 中只允许执行的主线程这样做。
有什么建议吗?
【问题讨论】:
-
什么样的线程?有一些库提供线程功能。
-
不幸的是,这只是使用单独 (POSIX) 线程进行连接时的冰山一角。考虑改用非阻塞 I/O(例如,使用 Twisted。)
-
线程需要自行终止(或被告知这样做)。你能让它们不被阻塞,所以如果有信号它们就可以退出吗? (投票或其他)
-
我正在使用线程模块,但在其他线程实用程序中发现了类似的困难。
标签: python multithreading