Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中关闭程序时杀死非守护进程线程?_Python_Multithreading_Python Asyncio - Fatal编程技术网

如何在python中关闭程序时杀死非守护进程线程?

如何在python中关闭程序时杀死非守护进程线程?,python,multithreading,python-asyncio,Python,Multithreading,Python Asyncio,杀死非守护进程线程的正确方法是什么?我有一个连接到API(异步IO)并不断从服务器接收数据的程序,这个连接必须在“正常”线程中运行,因为如果我将它设置为守护进程,它将不再工作。现在的问题是,如果我关闭程序,此连接将保持打开状态。我可以在单击exit按钮时实现一个停止线程的信号,但是如果任务管理器中的程序关闭了呢 我想我的问题是,如果程序没有通过单击按钮关闭,它是否会留下(编译成exe后)正在运行的线程?或者,如果我单击“退出”按钮,它将被关闭,尽管我仍然可以在Visual Studio代码控制台

杀死非守护进程线程的正确方法是什么?我有一个连接到API(异步IO)并不断从服务器接收数据的程序,这个连接必须在“正常”线程中运行,因为如果我将它设置为守护进程,它将不再工作。现在的问题是,如果我关闭程序,此连接将保持打开状态。我可以在单击exit按钮时实现一个停止线程的信号,但是如果任务管理器中的程序关闭了呢


我想我的问题是,如果程序没有通过单击按钮关闭,它是否会留下(编译成exe后)正在运行的线程?或者,如果我单击“退出”按钮,它将被关闭,尽管我仍然可以在Visual Studio代码控制台中看到线程正在运行?

这会有帮助吗?当进程被终止时,进程中的所有线程都将被终止。(它们必须是,因为没有进程的内存空间,它们无法继续运行)。我怀疑当你“关闭程序”时你所做的实际上只是关闭一个窗口;进程必须仍在运行(无窗口),线程才能继续运行。是的,您是正确的。有很多方法可以结束这个项目,我可以为其中的一些做好准备,但是剩下的呢?“无窗口”线程是否将无限期运行?我如何在没有守护程序威胁的情况下终止它?