python多进程multiprocessing卡住问题

一:背景

在使用多进程时,process.join()后面的代码并不会执行,一直卡在了第一个进程join()哪里不动。

环境:python3.8,centos7,multiprocessing库,使用mp.Queue()

二:调试过程

打印进程的pid,拿到pid后使用strace进行调试。

import os# 打印当前进程id
print(f"{os.getpid()=}")

拿到进程的id后,调试并查看子进程的状态。

# 下面两个命令多试几次,两个的输出不一样
strace -f -p pid
strace -p pidcd /proc/pid/cat statuscat stack

在strace后,报出write(5,错误,但是代码中并没有写入文件的操作,将传递给process的queue注释掉后,代码运行正常了,经查找发现是队列中put的数量太多子进程被锁住了导致死锁。

三:解决方案

将队列中的元素写入到文件中或在 join() 之前及时取出队列中的元素。

参考链接:

Linux 使用strace命令查找进程卡死原因-CSDN博客

https://blog.csdn.net/kikilover/article/details/117710424

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/15708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始搭建Springboot项目脚手架4:保存操作日志

目的:通过AOP切面,统一记录接口的访问日志 1、加maven依赖 2、 增加日志类RequestLog 3、 配置AOP切面,把请求前的request、返回的response一起记录 package com.template.common.config;import cn.hutool.core.util.ArrayUtil; import cn.hu…

单选或者多选的知识问题调研系统,怎么使用Neo4j的图数据库来实现

为了使用Neo4j的图数据库实现单选或多选的知识问题调研系统,你需要设计和实现以下几个步骤: 设计节点和关系插入数据定义查询和更新逻辑开发前端和后端应用来与Neo4j进行交互 1. 设计节点和关系 节点类型 Question:表示一个问题&#xff…

最新文章合集

GitHub宝藏项目:每天一个,让你的技术库增值不停! STORM、SuperMemory、Awesome Chinese LLM、AI写作助手、资料搜集、文章生成、视角问题引导、模拟对话策略、内容导入、浏览器插件、资源库、开源微调模型 开发者必看:Linux终端…

Vue 3指令与事件处理

title: Vue 3指令与事件处理 date: 2024/5/25 18:53:37 updated: 2024/5/25 18:53:37 categories: 前端开发 tags: Vue3基础指令详解事件处理高级事件实战案例最佳实践性能优化 第1章 Vue 3基础 1.1 Vue 3简介 Vue 3 是一个由尤雨溪(尤大)领导的开源…

方言和大语言模型

方言多样性及其对语言模型的影响 语言的演变是不可避免的,反映并推动了重大的社会变革和传统。语言接触往往会推动我们说话方式的创新,在美国全球文化的影响下,一种新的叙事正在其语言织锦中展开。 例如,在佛罗里达州南部&#…

Qt 在windows下显示中文

Qt在windows平台上显示中文,简直是一门玄学,经过测试,有如下发现: 1, 环境:Qt 5.15.2 vs2019 64位 win11系统 默认用Qt 创建的文件使用utf-8编码格式,此环境下 中文没有问题 ui->textE…

Nginx实现负载均衡与故障检查自动切换

创作灵感来源于个人项目的一个稳定性规划,单节点的项目稳定性方面可能有很大的缺漏,因此需要升级为多节点,保证服务故障后,依然有其他服务可用,不会给前端用户造成影响。 (前面讲选型,想直接看…

Kubernetes Service 之 ExternalName

Kubernetes Service 之 ExternalName ExternalName 定义 ExternalName 用来定义在不同的命名空间想要引用其它命名空间 Service 的别名,使得本空间 Service 名字在本空间更有区分度。 ExternalName 的使用 apiVersion: v1 kind: Service metadata:name: service…

IPv6 地址创建 EUI-64 格式接口 ID 的过程

IPv6 接口标识符 IPv6 地址中的接口标识符(ID)用于识别链路上的唯一接口,有时被称为 IPv6 地址的 “主机部分”。接口 ID 在链路上必须是唯一的,始终为 64 位长,并且可以根据数据链路层地址动态创建。 MAC 地址 中的…

Jenkins安装 :Aws EC2下Docker镜像安装

1 安装docker # 安装docker $ sudo yum install -y docker# 启动docker daemon $ sudo systemctl start docker# 用户加入docker组 $ sudo usermod -aG docker username 2 docker安装jenkins $ docker pull jenkins/jenkins:lts# 安装成功 $ docker images REPOSITORY …

逻辑这回事(一)----编码规范

说明:优先级是M的规则为强制项,优先级为R的规则为建议项。 通用约束 应有全局观念。 优先级:M 说明:你所编写的代码在成为最终硅片上的一部分之前,需要经过许多设计者利用各种各样的工具进行各种各样的处理。有时&…

解决vue3项目vite打包忽略.vue扩展名

项目打包时报could not relolve “...”,因为vite已不再默认忽略.vue扩展名。 解决方法如下: 在vite.config.js中配置vite使其忽略 .vue 扩展名(不建议忽略) 注意:即使忽略了.vue文件,在实际写的时候也要加…

达梦8 RLOG_COMPRESS_LEVEL参数对系统的影响

测试环境是一套主备达梦数据库。下面在主备库分别设置参数进行测试 测试一、 主库设置RLOG_COMPRESS_LEVEL9&#xff0c;备库设置为0。 分别删除主备库的归档日志后执行测试脚本 #当前时间 date disql SYSDBA/SYSDBA:1807 <<EOF #显示归档大小 select sum(free)/1024…

【独家揭秘!玩转ChatGPT?一文带你解锁秘籍!】

&#x1f680;【独家揭秘&#xff01;玩转ChatGPT&#xff1f;一文带你解锁秘籍&#xff01;】&#x1f680; &#x1f449; 【直达ChatGPT体验站】 ChatGPT&#xff0c;全称“Chat Generative Pre-trained Transformer”&#xff0c;是人工智能研究实验室OpenAI于2022年底推出…

HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求。...

在做MVC站点时(使用IIS版本为7.5)&#xff0c;使用Get请求&#xff0c;当Url里查询字符串过长时&#xff0c;会出现如下错误&#xff1a; 出现该错误的原因为&#xff1a;IIS7.5对于Query String有长度限制&#xff0c;默认为2048。 按照图中可尝试的操作提示&#xff0c;可以…

Redis(1)-Jedis连接配置

问题 阿里云安装并启用Redis后&#xff0c;尝试在本地用Jedis调用&#xff0c;发现报错 public class Jedis01 {Testpublic void connect(){Jedis jedis new Jedis("101.37.31.211", 6379); // 公网ipjedis.auth("123"); // 密码String ping jedis.pin…

MySQL中的sql语句

MySQL中的sql语句 DML、 DDL、 DCL DML(Data Manipulation Language)&#xff0c;用于对数据库中的数据进行操作&#xff0c;包括插入、查询、更新和删除数据等操作。常见的 DML 命令包括 SELECT&#xff08;查询&#xff09;、INSERT&#xff08;插入&#xff09;、UPDATE&a…

stm32H743不要将主频设置到480MHz

0 问题描述 本文使用的stm32H743是V版本&#xff0c;支持最高480MHz的主频。但在将主频设置为480MHz之后&#xff0c;使用FDCAN的回环模式出现了各种接收不到的异常问题。经过一番排查&#xff0c;将主频修改到400MHz&#xff0c;同时降低芯片内部LDO输出电压后恢复了正常。 …

jQuery实现瀑布流

以下是使用jQuery实现瀑布流的示例代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <titl…