python 线程thread.start()时,卡住,无法退出

jbl125697176 2018-12-24 09:37:11
在python中,开启新线程,有一定的概率在执行start()时,卡住,请问这是什么原因,有什么好的解决方法没?
...全文
1950 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿叶清风 2019-06-29
  • 打赏
  • 举报
回复
楼主解决没有?这段时间也遇到,有时候线程也会随机卡住,代码也没抛什么异常
jeky_zhang2013 2019-01-11
  • 打赏
  • 举报
回复
首先你要找出卡在哪行代码,再分析为什么会卡在那,主要还是里面运行的逻辑出现问题或是请求没有返回
简明教程 2019-01-08
  • 打赏
  • 举报
回复
Python 多线程 - 了解一下
jbl125697176 2019-01-03
  • 打赏
  • 举报
回复
引用 2 楼 小小爱好者 的回复:
请发代码出来。


哥,代码发了
jbl125697176 2019-01-03
  • 打赏
  • 举报
回复
引用 1 楼 123adsl 的回复:
能看看你的源代码吗?



t = ScriptRunThread(cls_handle, self.res, self.file, self.logger)
t.setDaemon(True)
t.start()

class ScriptRunThread(threading.Thread):
def __init__(self, script_handle, result_queue, filename, logger):
threading.Thread.__init__(self)
self.script_handle = script_handle
self.result_queue = result_queue
self.filename = filename
self.logger = logger

def run(self):
try:
result = self.script_handle.acquire_info()
if result is None:
return

self.logger.debug('file[%s], result:%s' % (self.filename, result))
if 'status' in result and result['status'] is True:
result['info_src'] = os.path.basename(self.filename)
self.result_queue.put(result)
except Exception as emsg:
self.logger.error('process file[%s] error!! emsg:%s' % (self.filename, emsg))
jbl125697176 2019-01-03
  • 打赏
  • 举报
回复
引用 1 楼 123adsl 的回复:
能看看你的源代码吗?


整体太多,只能贴一部分

t = ScriptRunThread(cls_handle, self.res, self.file, self.logger)
t.setDaemon(True)
t.start()

class ScriptRunThread(threading.Thread):
def __init__(self, script_handle, result_queue, filename, logger):
threading.Thread.__init__(self)
self.script_handle = script_handle
self.result_queue = result_queue
self.filename = filename
self.logger = logger

def run(self):
try:
result = self.script_handle.acquire_info()
if result is None:
return

self.logger.debug('file[%s], result:%s' % (self.filename, result))
if 'status' in result and result['status'] is True:
result['info_src'] = os.path.basename(self.filename)
self.result_queue.put(result)
except Exception as emsg:
self.logger.error('process file[%s] error!! emsg:%s' % (self.filename, emsg))
小小爱好者 2018-12-27
  • 打赏
  • 举报
回复
请发代码出来。
123adsl 2018-12-26
  • 打赏
  • 举报
回复
能看看你的源代码吗?

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧