专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

setDaemon后的线程怎么释放资源

发布时间:2011-06-29 20:10:23 文章来源:www.iduyao.cn 采编人员:星星草
setDaemon后的线程如何释放资源?
比如打开的数据库连: 
setDamon后就只能等主线程结束了,打开的资源不受控制了。 
文档中关于setDamon就要一点信息: 
The entire Python program exits when no alive non-daemon threads are 
left. 
  def thread_put(self): 
  con = sqlite3.connect('D:/job') 
  cur = con.cursor() 
  while True: 
  try: 
  urls,req,content = self.q_ans.get() 
  self.urls.extend(urls) 
  cur.execute("insert into http values(NULL,?,?)", 
(req,content)) 
  con.commit() 
  except Exception ,e: 
  print e,'other,excp========in=put' 
  finally: 
  self.q_ans.task_done()

------解决方案--------------------
那你不要设成deamon,while True改一下条件,比如queue空了就退出,get加超时参数不要死等
------解决方案--------------------
探讨

那你不要设成deamon,while True改一下条件,比如queue空了就退出,get加超时参数不要死等

------解决方案--------------------
这个帖子里以及帖子的链接帖子和文章里提到了几种控制子线程退出的方法,你可以看看,不知道是不是你需要的:
http://stackoverflow.com/questions/2564137/python-how-to-terminate-a-thread-when-main-program-ends
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: