Я использую jpype в потоке QRunnable (используя PySide2). Когда я пытаюсь закрыть приложение, закрывая главное окно, скрипт Python не завершается sh. Я предполагаю, что все еще есть активные ресурсы.
QThreadPool не сообщает об активных потоках.
Я создал простое демонстрационное приложение. Мое реальное приложение требует, чтобы код в потоке запускался несколько раз в течение его жизненного цикла, поэтому я не могу сделать ничего радикального, например, закрыть JVM после запуска потока.
Я бы хотел знать, как убирать, когда я хочу закрыть.
import logging
import sys
import PySide2.QtCore as qtc
import PySide2.QtWidgets as qtw
import jpype
class Worker(qtc.QRunnable):
def run(self):
jpype.startJVM()
logging.info("JVM started")
def main():
logging.basicConfig(level=logging.INFO)
app = qtw.QApplication(sys.argv)
window = qtw.QWidget()
window.show()
thread_pool = qtc.QThreadPool()
worker = Worker()
logging.info("starting thread")
thread_pool.start(worker)
app.exec_()