while True:
try:
queries_semaphore.acquire()
query = queries.pop(0)
# Do some stuff ...
info('Query executed: `%s\'' % str(query))
except KeyboardInterrupt:
okay('quit')
break问题是,只有在KeyboardInterrupt返回后才会引发queries_semaphore.acquire(),因此用户无法用Ctrl中断程序。这个案子的好办法是什么?
发布于 2011-05-06 21:23:59
我将为queries_semaphore.acquire()部分创建另一个线程,并将主线程留给用户进行交互。如果用户点击Ctrl,那么您应该通过设置信号量来解除工作线程的阻塞并完成它。
https://stackoverflow.com/questions/5917060
复制相似问题