小编LIS*_*INE的帖子

如何在python中使用多处理正确终止子进程

我有几个回调函数,我想启动多个进程,并通过父进程的信号终止它们.

我目前的做法是创建一个共享c_bool multiprocessing.Value并将其设置为True,然后在创建它时将其分发给我的所有进程.我的进程都使用共享bool运行while循环,如下所示:

while myC_bool: ...keep running...
Run Code Online (Sandbox Code Playgroud)

然后我可以将bool切换到False我的父进程,所有子进程将完成最后一个循环并退出.

许多人都告诉我,并且已经在文档中读到,在使用多处理时应该尝试避免使用共享内存.我被告知避免这种情况的最佳方法是守护进程,给它一个自定义信号处理程序并发送一个sigint/sigterm/etc ......

我的问题是,是专门使用bool来保持循环活动,并且只是从我的父进程改变它的值,并从多个子进程读取一个合适的解决方案,以使我的所有子进程快速安全地终止?我觉得所有孩子只需要查看一个共享bool就可以减少开销,而不是向他们发送x个sigints.

守护是否会成为更好的解决方案?如果是这样,我想帮助理解为什么.

python multiprocessing

7
推荐指数
1
解决办法
4772
查看次数

Conda SSL错误

我有一些问题让conda尊重我的代理声明.我已经从conda文档中的示例中复制了代理字符串,并用自己的url替换了url.我还导出了HTTP_PROXY和HTTPS_PROXY以及我知道工作的字符串.我的〜/ .condarc文件看起来像:

proxy_servers:
    http: http://<proxyaddress>:<port>
    https: https://<proxyaddress>:<port>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

编辑:conda版本:3.14.1

看起来代理字符串实际上很好.最初没有出现的真正问题是,由于我们的公司代理,conda没有使用我需要的ca-cert.我尝试安装软件包时出现的特定错误是:

Error: Connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581): ...
Run Code Online (Sandbox Code Playgroud)

python proxy anaconda conda

5
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×2

anaconda ×1

conda ×1

multiprocessing ×1

proxy ×1