相关疑难解决方法(0)

在没有try-except的情况下捕获Python中的keyboardinterrupt

Python中是否有某种方法可以捕获KeyboardInterrupt事件而不将所有代码放在try- except语句中?

如果用户按Ctrl+,我想干净利落地退出C.

python try-catch keyboardinterrupt

101
推荐指数
4
解决办法
9万
查看次数

键盘中断与python的多处理

我正在使用python的多处理优雅地处理键盘中断问题

(是的,我知道Ctr-C不应该​​保证正常关闭 - 但是让我们讨论一个不同的线程)

考虑以下代码,其中我是用户a multiprocessing.Manager#list(),我理解的ListProxy处理列表的多进程访问.

当我使用Ctr-C时 - 我socket.error: [Errno 2] No such file or directory在尝试访问ListProxy时得到了一个

我希望共享列表不会在Ctr-C上被破坏.这可能吗?!

注意:我想在不使用池和队列的情况下解决此问题.

from multiprocessing import Process, Manager
from time import sleep

def f(process_number, shared_array):
    try:
        print "starting thread: ", process_number
        shared_array.append(process_number)
        sleep(3)
        shared_array.append(process_number)
    except KeyboardInterrupt:
        print "Keyboard interrupt in process: ", process_number
    finally:
        print "cleaning up thread", process_number

if __name__ == '__main__':

    processes = []

    manager = Manager()
    shared_array = manager.list()

    for i in xrange(4):
        p = Process(target=f, args=(i, shared_array))
        p.start() …
Run Code Online (Sandbox Code Playgroud)

python multithreading multiprocessing

11
推荐指数
1
解决办法
4142
查看次数