【python】tkinter使用多进程打包成exe后multiprocessing无法关闭对应进程

这是由于multiprocessing模块在Windows操作系统下使用fork方法创建子进程时会导致打包成exe后无法正常运行的问题。

可以尝试使用freeze_support函数来解决这个问题。freeze_support函数是在Windows操作系统下用于支持multiprocessing模块的函数。

下面是一个示例代码:

python 复制代码
import multiprocessing
from multiprocessing import Pool, freeze_support

def worker():
    print('Worker')

if __name__ == '__main__':
    freeze_support()
    p = Pool(4)
    p.apply_async(worker)
    p.close()
    p.join()

在代码的开头,我们导入了freeze_support函数。然后,我们在if name == 'main':条件下调用了freeze_support函数。这样,在Windows操作系统下打包成exe后,multiprocessing模块就能够正常运行了。

注意,freeze_support函数只需要在Windows操作系统下调用,对其他操作系统没有影响。所以,你可以在代码中加入一个判断,只在Windows操作系统下调用freeze_support函数。

相关推荐
小高Baby@2 分钟前
使用Go语言中的Channel实现并发编程
开发语言·后端·golang
梦弦182 分钟前
Django:Python高效Web开发利器
python·django
蓝色汪洋9 分钟前
经典修路问题
开发语言·c++·算法
Knight_AL12 分钟前
Spring AOP 中 JoinPoint 使用指南
java·python·spring
知远同学17 分钟前
Pycharm顶部菜单栏固定显示
ide·python·pycharm
默默前行的虫虫19 分钟前
nicegui中多次调用数据库操作总结
数据库·python
ss27320 分钟前
ThreadPoolExecutor:自定义线程池参数
java·开发语言
Salt_072822 分钟前
DAY 47 Tensorboard的使用介绍
人工智能·python·深度学习·机器学习
我有一棵树22 分钟前
解决 highlight.js 不支持语言的方法
开发语言·javascript·ecmascript
Salt_072833 分钟前
DAY 40 早停策略和模型权重的保存
人工智能·python·算法·机器学习