【发布时间】:2012-06-09 22:15:07
【问题描述】:
我正在使用来自 Jython 的 Swing,我发现虽然 System.exit()(来自 java.lang)或 JFrame.setDefaultCloseOperation(EXIT_ON_CLOSE) 工作正常,但调用 sys.exit() 会挂起。
显然,通过atexit.register注册了一个函数,该函数等待所有线程退出,正如Python所期望的那样(这实际上与Java不同)。
这意味着如果ActionListener 被调用(例如,当单击JButton 时),AWT 的事件调度线程将被生成,并且调用sys.exit() 将永远挂起,等待它退出。
这是一个示例:https://gist.github.com/2877919。关闭框架会退出程序,除非先单击按钮。
退出 Jython 应用程序的最佳方式是什么?使用EXIT_ON_CLOSE 或System.exit() 将完全忽略atexit...
【问题讨论】:
标签: multithreading jython