在本文中,我们将给您介绍关于100天精通Python的详细内容,并且为您解答进阶篇——第38天:多进程【文末送书三本】的相关问题,此外,我们还将为您提供关于100天精通Python——第41天:自动化
在本文中,我们将给您介绍关于100 天精通 Python的详细内容,并且为您解答进阶篇—— 第 38 天:多进程【文末送书三本】的相关问题,此外,我们还将为您提供关于100天精通Python——第41天:自动化操作Excel(xlrd和xlwt)【文末送书三本】、100天精通Python(进阶篇)——第40天:操作MongoDB数据库【文末送书三本】、C# 求 1-100 的质数,100-1000 的水仙花数,1-100 所有的平方和平方平方根、python IO密集型任务、计算密集型任务如何选择使用多线程、多进程的知识。
本文目录一览:- 100 天精通 Python(进阶篇)—— 第 38 天:多进程【文末送书三本】(python多进程教程)
- 100天精通Python——第41天:自动化操作Excel(xlrd和xlwt)【文末送书三本】
- 100天精通Python(进阶篇)——第40天:操作MongoDB数据库【文末送书三本】
- C# 求 1-100 的质数,100-1000 的水仙花数,1-100 所有的平方和平方平方根
- python IO密集型任务、计算密集型任务如何选择使用多线程、多进程
100 天精通 Python(进阶篇)—— 第 38 天:多进程【文末送书三本】(python多进程教程)

转:
100 天精通 Python(进阶篇)—— 第 38 天:多进程【文末送书三本】
文章目录
- 每篇前言
- 一、什么是多进程?
-
- 1. 进程
- 2. 进程的状态
- 二、进程的创建 - multiprocessing
-
- 1. Process 类语法说明
- 2. 2 个 while 循环一起执行
- 3. 进程 pid
- 4. 给子进程指定的函数传递参数
- 5. 进程间不同享全局变量
- 三、进程间同步 - Queue
-
- 1. Queue 类语法说明
- 2. Queue 的使用
- 3. Queue 实例
- 四、进程间同步 - Lock
- 五、进程池 Pool
-
- 1. Pool 类语法说明
转:
100 天精通 Python(进阶篇)—— 第 38 天:多进程【文末送书三本】
--Posted from Rpc
100天精通Python——第41天:自动化操作Excel(xlrd和xlwt)【文末送书三本】
文章目录
- 每篇前言
- 一、Python操作Excel 7大库对比
- 二、xlrd 读取excel操作
-
- 1. 打开文件
- 2. 获取所有表名
- 3. 指定sheet表
- 4. 对sheet表的行操作
- 5. 对sheet表的列操作
- 三、xlwt 写入Excel表操作
-
- 1. 写入单个数据
- 2. 写入多个数据
- 3. 设置列宽
- 4. 设置行高
- 5. 设置单元格风格
- 四、 如何让学习更加高效呢?
- 五、参与抽粉丝送书啦
每篇前言
100天精通Python(进阶篇)——第40天:操作MongoDB数据库【文末送书三本】
@H_301_0@文章目录
- 每篇前言
- 一、安装pymongo库
- 二、数据库操作
-
- 1、连接数据库
- 2、数据库操作
- 3、集合操作
- 4、插入文档
-
- 插入一个文档
- 插入多个文档
- 插入指定 _id 的多个文档
- 5、查看文档
-
- 查询一条数据
- 查询集合中所有数据
- 查询指定字段的数据
- 根据指定条件查询
- 高级查询
- 使用正则表达式查询
- 返回指定条数记录
- 6、修改文档
-
- 修改一条
- 修改全部
C# 求 1-100 的质数,100-1000 的水仙花数,1-100 所有的平方和平方平方根
// 你们的鼓励是我最大的动力 大家可以多留言评论 在接下来很长一段时间我会从初级到高级每天更新 大家有想学习的内容也可以留言哦
// 现在是我做 C# 老师的第 28 天,希望和大家一起努力 加油
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FOR
{
class Program
{
static void Main(string[] args)
{
//1 求出 1~100 之间的质数 什么是质数 。 质数:从 2 开始除了 1 和它本身不能被任何数整出的数叫做质数比如 2,3,5,7
int count = 0;// 计算器
for (int i = 2; i <= 100; i++)
{
bool zhi = true;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
zhi = false;
break;
}
}
if (zhi == true)
{
count++;
Console.WriteLine ("1-100 以内的质数有 {0}", i);
}
}
Console.WriteLine ("1-100 以内的质数总共有 {0} 个", count);
//2 求出 100-1000 以内的水仙花数 什么是水仙花数? 水仙花数:"153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3"
for (int k = 100; k < 1000; k++)
{
int ge = k % 10;
int shi = ((k-ge)%100)/10;
int bai =(k-(ge+shi*10))/100;
int sxh = bai * bai * bai + shi * shi * shi + ge * ge * ge;
if (k == sxh)
{
Console.WriteLine ("100-1000 以内的水仙花数有 {0}", k);
}
}
// 求出 1-100 的平方和平方根
for (int h = 1; h < 100; h++)
{
int pf = h * h;
double pfg = Math.Sqrt(h);
Console.WriteLine ("{0} 的平方是 {1},平方根是 {2}",h,pf,pfg);
}
}
}
}
python IO密集型任务、计算密集型任务如何选择使用多线程、多进程
IO密集型任务 VS 计算密集型任务
所谓IO密集型任务,是指磁盘IO、网络IO占主要的任务,计算量很小。比如请求网页、读写文件等。当然我们在Python中可以利用sleep达到IO密集型任务的目的。
所谓计算密集型任务,是指cpu计算占主要的任务,cpu一直处于满负荷状态。比如在一个很大的列表中查找元素(当然这不合理),复杂的加减乘除等。
多线程 VS 多进程
Python中比较常见的并发方式主要有两种:多线程和多进程。当然还有协程,这里不做介绍。
1、多线程
多线程即在一个进程中启动多个线程执行任务。一般来说使用多线程可以达到并行的目的,但由于Python中使用了全局解释锁GIL的概念,导致Python中的多线程并不是并行执行,而是“交替执行”。类似于下图:(图片转自网络,侵删)
所以Python中的多线程适合IO密集型任务,而不适合计算密集型任务。
Python提供两组多线程接口,一是thread模块_thread,提供低等级接口。二是threading模块,提供更容易使用的基于对象的接口,可以继承Thread对象来实现线程,此外其还提供了其它线程相关的对象,例如Timer,Lock等。
2、多进程
由于Python中GIL的原因,对于计算密集型任务,Python下比较好的并行方式是使用多进程,这样可以非常有效的使用cpu资源。当然同一时间执行的进程数量取决你电脑的cpu核心数。
Python中的进程模块为mutliprocess模块,提供了很多容易使用的基于对象的接口。另外它提供了封装好的管道和队列,可以方便的在进程间传递消息。Python还提供了进程池Pool对象,可以方便的管理和控制线程。
代码测试:
对于IO密集型任务:
直接执行用时:10.0333秒
多线程执行用时:4.0156秒
多进程执行用时:5.0182秒
说明多线程适合IO密集型任务。
对于计算密集型任务
直接执行用时:10.0273秒
多线程执行用时:13.247秒
多进程执行用时:6.8377秒
说明多进程适合计算密集型任务
原文:https://zhuanlan.zhihu.com/p/24283040
今天的关于100 天精通 Python和进阶篇—— 第 38 天:多进程【文末送书三本】的分享已经结束,谢谢您的关注,如果想了解更多关于100天精通Python——第41天:自动化操作Excel(xlrd和xlwt)【文末送书三本】、100天精通Python(进阶篇)——第40天:操作MongoDB数据库【文末送书三本】、C# 求 1-100 的质数,100-1000 的水仙花数,1-100 所有的平方和平方平方根、python IO密集型任务、计算密集型任务如何选择使用多线程、多进程的相关知识,请在本站进行查询。
本文标签: