python:并发编程(四)

news2024/11/25 17:51:27

前言

本文将和大家一起探讨python的多进程并发编程,使用内置基本库multiprocessing来实现并发,先通过官方来简单使用这个模块。先打好基础,能够有个基本的用法与认知,后续文章,我们再进行详细使用。

本文为python并发编程的第四篇,上一篇文章地址如下:

python:并发编程(三)_Lion King的博客-CSDN博客

下一篇文章地址如下:

(暂无)
 

一、快速开始

官方文档:multiprocessing --- 基于进程的并行 — Python 3.11.4 文档

1、通过Process Explorer对比进程情况

基于官方代码,我加了“while True:”这个无线循环,以方便观察进程的情况。

这段代码创建了一个无限循环,在每次循环中使用multiprocessing模块的进程池来执行函数f(x)。具体步骤如下:

(1)导入multiprocessing模块的Pool类。

(2)定义了一个函数f(x),用于计算传入参数x的平方。

(3)在if __name__ == '__main__':条件下创建一个进程池p,并指定进程池的大小为5。

(4)使用p.map()方法并行地对给定的迭代对象[1, 2, 3]中的每个元素应用函数f(x),并返回结果。

(5)打印输出结果。

(6)进入无限循环。

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    while True:
        with Pool(5) as p:
            print(p.map(f, [1, 2, 3]))

运行前的进程情况:

运行时的进程情况:

 通过上述实验,我们知道,这个程序在不断创建5个进程并进行销毁,红色部分是被销毁的5个进程,绿色部分是新生成的5个进程。通过Pycharm运行脚本时,会先生成python.exe子进程,这个子进程又会生成python.exe子进程和conhost.exe子进程,而第二个python.exe子进程又会生成5个子进程,来执行任务。

 

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

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

相关文章

【数据库原理与应用 - 第四章】关系数据库规范化理论

目录 一、关系模式规范化理论 1、关系模式规范化概念 2、关系模式应满足的基本要求 3、关系规范化的意义 (1)一个好的数据库应遵循的标准 (2)规范化的意义 二、函数依赖 1、函数依赖的概念 (1)平凡…

Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(五)

今天开始使用 vue3 ts 搭建一个项目管理的后台,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行&…

学生成绩管理系统(逻辑清楚-简单实用)

1、需求分析 1.1、需求分析概述 需求分析是我们在软件开发中的重要环节,是软件开发的第一步也是最基础的环节,这将决定我们所实现的目标以及系统的各个组成部分、各部分的任务职能、以及使用到的数据结构、各个部门之间的组成关系和数据流程&#xff0…

chatgpt赋能python:Python列表操作:如何使用Python将数据放入列表中

Python列表操作:如何使用Python将数据放入列表中 在Python中,列表是一种重要的数据结构,允许我们将多个项目存储在单个变量中。在本文中,我们将介绍如何将数据放入Python列表中。我们将讨论Python中的列表数据类型以及如何向列表…

chatgpt赋能python:Python中如何放大图片

Python中如何放大图片 简介 图片是网站优化中不可或缺的一部分,然而,当图片在网站中被缩小或拉伸时,会导致其模糊或失真。在这种情况下,可以使用Python中的一些库来放大图片,同时保持图像的清晰度和质量。在本篇文章…

JavaScript 进阶 - 第3天

文章目录 JavaScript 进阶 - 第3天1 编程思想1.1 面向过程1.2 面向对象(oop) 2 构造函数3 原型对象3.1 原型3.2 constructor 属性3.3 对象原型3.4 原型继承3.5 原型链(面试高频) JavaScript 进阶 - 第3天 了解构造函数原型对象的语…

C++友元函数friend使用的学习总结

C友元函数friend使用的学习总结 1. 友元函数简介1.1 使用友元函数的目的1.2 友元函数的三种实现方法 2.全局函数做友元3.类做友元4.成员函数做友元注意! 1. 友元函数简介 1.1 使用友元函数的目的 允许一个函数或者类访问另一个类中的私有成员,使得两个类可以共享同…

HTML学习(一)

Web标准 主要包括&#xff1a;结构&#xff0c;外观&#xff0c;行为三个方面 HTML标签&#xff0c;把标签学会&#xff0c;这门语言就基本学会了 双标签的关系&#xff0c;并列关系和包含关系 每个标签起作用的位置 vscode自动生成的代码的解释 <!DOCTYPE>文档类型声…

【RabbitMQ教程】第八章 —— RabbitMQ - 幂等性、优先级、惰性

&#x1f4a7; 【 R a b b i t M Q 教程】第八章—— R a b b i t M Q − 幂等性、优先级、惰性 \color{#FF1493}{【RabbitMQ教程】第八章 —— RabbitMQ - 幂等性、优先级、惰性} 【RabbitMQ教程】第八章——RabbitMQ−幂等性、优先级、惰性&#x1f4a7; &#x1f…

chatgpt赋能python:Python调试技巧:如何使用断点运行程序

Python调试技巧&#xff1a;如何使用断点运行程序 在Python编程中&#xff0c;程序出现错误或需要调试时&#xff0c;我们需要一些工具来帮助我们定位问题和修复代码。其中之一就是使用断点来运行程序。接下来我们将讨论如何在Python中使用断点进行程序调试的相关技巧。 什么…

C++11核心特性---右值引用(代码+讲解)

右值引用C11 1.左值和右值2.左值引用3.右值引用4.右值引用的性能优化空间5.移动语义6.值类别7.将左值转化为右值8.万能引用和引用折叠9.完美转发10.针对局部变量和右值引用的隐士类型转换11.总结 今天看到谢丙堃老师的《现代C语言核心特性解析》一书中关于右值引用的介绍&#…

21.网络编程|Java学习笔记

文章目录 网络的相关概念ipv4地址分类网路通信协议TCP和UDP InetAdress类SocketTCP网络通信编程应用案例服务端客户端 netstat指令TCP网络通讯不为人知的秘密 UDP网络通信编程【了解】网络传输文件代码示例 网络的相关概念 网络通信 网络 ip地址 1. 概念:用于唯一标识网络…

【数据库原理与应用 - 第七章】数据库安全性和完整性控制

目录 一、数据库安全性控制 二、数据库完整性控制 三、课后习题 数据库的保护功能&#xff1a;数据库安全性、完整性、数据库恢复、并发控制 一、数据库安全性控制 数据库的安全性&#xff1a;保护数据库&#xff0c;以防止非授权用户非法存取造成的数据泄密、更改、破坏DBM…

Python开发中的常见问题和解决方法:如何解决常见的性能和bug问题

第一章&#xff1a;引言 在Python开发中&#xff0c;我们经常会遇到一些常见的问题&#xff0c;包括性能瓶颈和程序错误&#xff08;bug&#xff09;。这些问题可能会影响我们的应用程序的运行效率和稳定性。因此&#xff0c;了解这些问题的根源并学习解决方法是非常重要的。本…

IDEA集成GitHub - Gitee集成

GitHub 集成 实际的开发中&#xff0c;代码都是采用IDE进行开发&#xff0c;所以我们这里介绍一下IDEA软件是如何集成GitHub远程仓库进行代码版本控制的。这里采用的IDEA版本为2022.2.1,其他版本的IDEA软件会略有差别。 1、 配置 Git 软件 2、 配置 GitHub 账号 继续点授权按…

三.数据类型

目录 1、布尔类型 2、整数类型 3、浮点数类型 4、字符类型 5、字符串类型 6、类型转换 1、布尔类型 Go语言中的布尔类型与其他语言基本一致&#xff0c;关键字也为bool&#xff0c;可赋值为预定义的true和false 示例代码如下&#xff1a; var v1 bool v1 true v2 :…

【TCP/IP】利用I/O复用技术实现并发服务器 - select函数

目录 I/O复用技术 select函数 设置文件描述符 指定监视范围 设置超时 I/O复用服务器端的实现 由服务器创建多个进程来实现并发的做法有时会带来一些问题&#xff0c;比如&#xff1a;内存上的开销、CPU的大量占用等&#xff0c;这些因素会消耗掉服务器端有限的计算资源、…

chatgpt赋能python:Python中如何更新pip版本

Python中如何更新pip版本 Python是一种非常强大的编程语言&#xff0c;它在现代编程领域中广泛使用。使用Python的好处之一是能够轻松地在其上安装和使用各种库&#xff0c;其中许多库由Python包管理器pip&#xff08;pip-installs-packages&#xff09;提供。尽管pip可以使Py…

新建的springboot 项目往往删除(1).mvn(2) .gitignore(3) HELP.md (4)mvnw (5)mvnw.cmd 文件

问题 新建的springboot 项目&#xff0c;项目开发人员往往删除&#xff08;1&#xff09;.mvn&#xff08;2&#xff09; .gitignore&#xff08;3&#xff09; HELP.md &#xff08;4&#xff09;mvnw &#xff08;5&#xff09;mvnw.cmd 文件&#xff0c;这些文件是什么&…

康耐视3D相机-DSMAX-VisionPro软件安装向导

机器视觉Halcon-字符识别 一. 系统需求 PC最小需求. OS: Win7 Pro/8Pro/10Pro X64 . Memory: 4GB RAM . PCIe 槽:X4 Gen2 一个 . 显存大小大于1GB 注意:1)PCIe插槽推荐使用x4 Gen 3; 软件版本VisionPro 9.2 CR1 X64/VisionPro 9.5及以上版本+ VisionPro_9_2_CR1_64-bit_…