Python小姿势 - ## 一、Python多进程编程

news2024/11/29 0:34:46

一、Python多进程编程

在上一节,我们学习了Python的多线程编程,这节我们学习一下Python的多进程编程。

多进程和多线程比较类似,区别在于多进程是指在一个应用程序中同时运行多个进程,而多线程是指在一个进程中同时运行多个线程。

一个进程可以创建和撤销自己的子进程,通常进程通过创建子进程来执行其他程序。一个进程也可以调用库函数来创建或撤销进程。

在Python中,提供了两个模块来支持多进程编程:

  • multiprocessing :模块提供了一个Process类来代表一个进程对象
  • os :该模块提供了一些与操作系统交互的函数

我们先来看看如何使用 multiprocessing 模块来编写多进程程序。

首先,我们来实现一个简单的多进程程序,实现一个计算圆周率的程序,代码如下所示:

```python from multiprocessing import Process import time

计算函数 def calc_pi(n): pi = 0 for i in range(n): pi += 1.0 / (2 * i + 1) * (-1)**i return pi

主函数 if name == 'main': 计算前10亿次圆周率,耗时较长 n = 1000000000 创建子进程 p = Process(target=calc_pi, args=(n,)) 启动子进程 p.start() 等待子进程结束 p.join() 输出结果 print(p.get_result())

```

从代码中可以看出,我们首先导入了 multiprocessing 模块的 Process 类,然后我们定义了一个计算圆周率的函数 calc_pi ,该函数的参数是要计算的次数

顺便介绍一下我的另一篇专栏, 《100天精通Python - 快速入门到黑科技》专栏,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架;黑科技应用篇以实战为主,包括办公效率小工具、爬虫、数据分析、机器学习、计算机视觉、自然语言处理、数据可视化等等,让你会用一段简单的Python程序,自动化解决工作和生活中的问题,甚至成为红客。

🍅 订阅福利原价299,限时1折订阅专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导/学习方法指引),群里大佬可以抱团取暖(大厂/外企内推机会)

🍅 订阅福利简历指导、招聘内推、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

🍅 专栏地址: 点击《100天精通Python - 快速入门到黑科技》

100天精通Python - 订阅福利

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

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

相关文章

ovs-vsctl 命令详解

ovs-vsctl 命令详解 网桥Bridge 创建 Bridge ovs-vsctl add-br br0 删除 Bridge ovs-vsctl del-br br0 列出 Bridge ovs-vsctl list-br 显示详情 ovs-vsctl show 端口 Port 添加端口 ovs-vsctl add-port br0 p1 其中br0 为上面添加的bridge p1可以是物理端口或者vN…

50道web前端工程师面试题及答案解析,你学会了吗

简介:本文包含了50个实用的前端面试题及答案解析,涵盖了HTML、CSS、JavaScript、DOM、Ajax、MVC、模块化、ES6、SPA、Webpack、Babel、Virtual DOM、响应式设计、移动优先设计、响应式图片、CSS 预处理器、后处理器、模块化、布局、盒模型、浮动、定位、…

国民技术N32G430开发笔记(5)- 基本定时器TIM6的使用

基本定时器TIM6的使用 1、设置一个定时器,100ms一次去开关LED灯 2、tim6的初始化代码: 大部分代码来自官方demo /****************************************************************************** Copyright (c) 2019, Nations Technologies Inc.** …

python毕业设计之django+vue专业手语翻译工作室预约管理系统

发起预约:用户选定某翻译员发起预约,进行预约信息填写,主要内容有联系电话、工作方式、场合、时间段;或发起预约,填写预约信息,筛选翻译员,可按关键词筛选或等级筛选。发起预约时间需至少提前服…

从CPU的视角看 多线程代码为什么那么难写!

当我们提到多线程、并发的时候,我们就会回想起各种诡异的bug,比如各种线程安全问题甚至是应用崩溃,而且这些诡异的bug还很难复现。我们不禁发出了灵魂拷问 “为什么代码测试环境运行好好的,一上线就不行了?”。 为了解…

如何将 github pages 迁移到 vercel 上托管

如何将 github pages 迁移到 vercel 上托管 前言 早期网站使用 github pages,后来迁移到 coding,最近又放到腾讯云网站静态托管,无论是 coding 的 cos 存储桶,还是静态网站托管 他们都是收费的,那有没有免费的托管商呢,既不影响网站的访问速度还免费,于是,找了一下,还真有,ve…

电商广告营销中,有哪些常见公式和优化手段

对于电商广告ROI的计算,广泛地应用在二类电商、跨境电商等营销场景中,了解这些相关的投放公式,有助于我们更好地进行广告投放和优化。 特别是针对商家而言,可以指导选品及定价策略、优化最终的广告投放收益,避免出现花…

学系统集成项目管理工程师(中项)系列14_采购管理

1. 概念和术语 1.1. 采购是从项目团队外部获得产品、服务或成果的完整的购买过程 1.2. 三大类 1.2.1. 工程 1.2.2. 产品/货物 1.2.3. 服务 2. 主要过程 2.1. 编制采购管理计划 2.2. 实施采购 2.3. 控制采购 2.4. 结束采购 3. 合同 3.1. 包括买方和卖方之间的法律文…

css布局实战:动态详情九宫格

上篇文件介绍了如何实现九宫格图片展示:css布局入门级实战之九宫格网格布局.不过存在一个问题:图片之间没有间距,用户体验欠佳;基于以上问题,本文进行优化. 较之前实现样式做以下调整:四张图按照两行显示,每行显示三个.不足的显示空白.之前是两行两列显示. 对应九宫格样…

忆暖行动|“他一个人推着老式自行车在厚雪堆的道路上走,车上带着学生考试要用的司机”

忆暖行动|“他一个人推着老式自行车在厚雪堆的道路上走,车上带着学生考试要用的sj” 一头白发,满山青葱 在那斑驳的物件褶皱中,透过泛黄的相片,掩藏着岁月的冲刷和青葱的时光。曾经的青年早已经不复年轻,但是那份热爱…

从信息泄露到权限后台

声明:文中涉及到的技术和工具,仅供学习使用,禁止从事任何非法活动,如因此造成的直接或间接损失,均由使用者自行承担责任。 点点关注不迷路,每周不定时持续分享各种干货。 众亦信安,中意你啊&a…

1210. 穿过迷宫的最少移动次数

你还记得那条风靡全球的贪吃蛇吗? 我们在一个 n*n 的网格上构建了新的迷宫地图,蛇的长度为 2,也就是说它会占去两个单元格。蛇会从左上角((0, 0) 和 (0, 1))开始移动。我们用 0 表示空单元格,用 1 表示障碍…

题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和--不能完全通过,最好情况通过67.

原题链接: 题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和 https://www.dotcpp.com/oj/problem3166.html 致歉 害,首先深感抱歉,这道题还是没有找到很好的解决办法。目前最好情况就是67分。 这道题先这样跳过吧,当然以后还…

RabbitMQ 03 直连模式-可视化界面

这里先演示最简单的模型:直连模式。其结构图为: 一个生产者 -> 消息队列 -> 一个消费者 生产者只需要将数据丢进消息队列,而消费者只需要将数据从消息队列中取出,这样就实现了生产者和消费者的消息交互。 创建一个新的实验…

CLion开发工具 | 05 - 使用CLion开发ESP32

专栏介绍 一、准备工作 电脑上安装好ESP-IDF环境本文参考Jetbrains官方视频教程:在 Windows 上用 CLion 开发 ESP32 | CLion教程 | 嵌入式开发 | IDE 二、打开工程 复制一份新的helloworld工程。 使用CLion打开该工程。 选择信任该工程。 CLion打开后自动打开…

Linux 基础语法 -2

如果我们以后再Linux当中 写了一些命名,导致程序我们不能进行操作了,如这个死循环: 他就会一直输出 "hello Linux" ,我们就使用 ctrl c 来终止因为程序或者指令异常,而导致我们无法进行指令输入&#xff…

2023/04/27~28 刷题记录

D - JoJos Incredible Adventures 大致题义: 有一串由 0,1 构成的字符串,每次循环右移一位,行编号从 0 一直到 n-1。求这些行里由 1 构成的最大矩形面积。 题解: 我们其实可以观察到一串连续的 1 经过右移后是会形成一对正三角和…

C# WebService的开发以及客户端调用

目录 1、WebService简介 1.1 什么是XML? 1.2 什么是Soap? 1.3 什么是WSDL? 2、WebService与WebApi的区别与优缺点 2.1 WebService与WebApi的区别: 2.2 WebService的优缺点: 2.3 WebApi的优缺点: 3…

ShardingJDBC 数据库分片 流式处理+归并排序 优化原理刨析

1. 分库分表下的分页查询 业务数据达到一定数据量时,必定会引入数据库分片,但当对于分片的情况下,分页查询是如何做到的? 比如: 数据库db1,中有三个user表,user_0,user_1,user_2&a…

FreeRTOS 信号量(五) ------ 递归互斥信号量

文章目录 一、递归互斥信号量简介二、创建互斥信号量1. xSemaphoreCreateRecursiveMutex()2. xSemaphoreCreateRecursiveMutexStatic() 三、递归信号量创建过程分析四、释放递归互斥信号量五、获取递归互斥信号量六、递归互斥信号量使用示例 一、递归互斥信号量简介 递归互斥信…