【发布时间】:2014-10-04 16:36:55
【问题描述】:
我在 python 程序中有Segmentation fault,但不知道是什么原因造成的:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffebfff700 (LWP 13584)]
0x00007ffff2e73492 in flag_bsearch(unsigned short*, unsigned short, int) ()
from /usr/lib/x86_64-linux-gnu/libhunspell-1.3.so.0
我所做的基本上是填充一些工作线程的队列,这些工作线程将以如下速度处理作业(这里是link for complete code):
for worker in self.workers:
# if worker's queue is full block otherwise enqueue without blocking
if worker.comments_queue.full():
worker.comments_queue.put(comment)
else:
worker.comments_queue.put_nowait(comment)
当我启用一个工人时我没有这个问题,只有当我启用至少两个工人时才会发生分段错误(这里是link for complete code):
analyzer = AnalyzerManager()
#analyzer.register(LengthAnalyzer())
analyzer.register(LanguageAnalyzer())
#analyzer.register(UserAnalyzer())
analyzer.register(SentimentAnalyzer())
有什么提示可以找出导致此问题的原因吗?
【问题讨论】:
标签: python multithreading queue segmentation-fault