Python中文
首页
教程
问答
标签
搜索
登录
注册
Python线程挂起而不clos
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>这是我第一次尝试用Python编写线程, 我写了下面的程序作为一个非常简单的例子。它只是得到一个列表并使用一些线程打印它。但是,每当出现错误时,程序就会挂在Ubuntu中,而我似乎不能做任何事情来恢复控制提示符,所以必须重新启动另一个SSH会话才能重新进入。 也不知道我的程序有什么问题。 是否有某种类型的错误处理可以确保它不会挂起。 还有,知道为什么ctrl/c不起作用吗(我没有break键)</p> <pre><code>from Queue import Queue from threading import Thread import HAInstances import logging log = logging.getLogger() logging.basicConfig() class GetHAInstances: def oraHAInstanceData(self): log.info('Getting HA instance routing data') # HAData = SolrGetHAInstances.TalkToOracle.main() HAData = HAInstances.main() log.info('Query fetched ' + str(len(HAData)) + ' HA Instances to query') # for row in HAData: # print row return(HAData) def do_stuff(q): while True: print q.get() print threading.current_thread().name q.task_done() oraHAInstances = GetHAInstances() mainHAData = oraHAInstances.oraHAInstanceData() q = Queue(maxsize=0) num_threads = 10 for i in range(num_threads): worker = Thread(target=do_stuff, args=(q,)) worker.setDaemon(True) worker.start() for row in mainHAData: #print str(row[0]) + ':' + str(row[1]) + ':' + str(row[2]) + ':' + str(row[3])i q.put((row[0],row[1],row[2],row[3])) q.join() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你的q被吊死是因为你的工人出错了。所以你的q.task_done()从未被调用。在</p> <pre><code>import threading </code></pre> <p>使用</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
8 回答
如何添加表示整数的擦边字符串?
4 回答
如何添加要在Bokeh中使用的新font.ttf文件?
4 回答
如何添加要显示的矩阵XY轴编号和XY轴
8 回答
如何添加计数?
2 回答
如何添加计数器函数?
6 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
5 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
7 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
3 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
2 回答
如何添加评论拉梅尔亚姆
4 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
9 回答
如何添加谷歌地点自动完成到Flask?
5 回答
如何添加超时、python discord bot
4 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
4 回答
如何添加跟随游戏的敌人精灵
1 回答
如何添加路径以便python可以找到程序?
9 回答
如何添加身份验证/安全性以使用happybase访问HBase?
6 回答