2024-04-25 21:15:43 发布
网友
我有一个多进程应用程序,其中父进程创建一个队列并将其传递给工作进程。所有进程都使用此队列来创建用于日志记录的queuehandler。有一个工作进程正在从该队列中读取数据并进行日志记录。你知道吗
辅助进程不断检查父进程是否处于活动状态。问题是,当我从命令行终止父进程时,除了一个工作进程之外,其他所有工作进程都被终止。记录器进程也将终止。我不知道为什么一个进程一直在执行。是因为队列中有锁吗?在这种情况下如何正确退出?我正在使用
sys.exit(0)
为了退出。你知道吗
只有在没有其他机会的情况下,我才会使用sys.exit(0)。最好是干净地完成每一个线程/进程。在您的过程中会有一些while循环。所以只要在那里做break,这样它就可以结束了。你知道吗
while
break
离开前整理一下,即释放所有外部资源的句柄,如文件、套接字、管道等。你知道吗
这些句柄中的某个地方可能是您看到的行为的原因。你知道吗
只有在没有其他机会的情况下,我才会使用
sys.exit(0)
。最好是干净地完成每一个线程/进程。在您的过程中会有一些while
循环。所以只要在那里做break
,这样它就可以结束了。你知道吗离开前整理一下,即释放所有外部资源的句柄,如文件、套接字、管道等。你知道吗
这些句柄中的某个地方可能是您看到的行为的原因。你知道吗
相关问题 更多 >
编程相关推荐