Python中的多线程和多进程使用总结

本文纯属概念和简单的常识性内容

并行是指两个或者多个事件在同一时刻发生。并发是指两个或多个事件在同一时间间隔内发生

1、基础概念


因为服武器的CPU都是多核的,多线程的使用能充分发挥CPU的多核优势,提高程序执行效率。
1.1、线程
线程是一个基本的 CPU 执行单元。它必须依托于进程存活。一个线程是一个execution context,即一个 CPU 执行时所需要的一串指令。
1.2、进程
进程是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调用的独立单位。
可以简单地理解为操作系统中正在执行的程序。也就说,每个应用程序都有一个自己的进程。
每一个进程启动时都会最先产生一个线程,即主线程。然后主线程会再创建其他的子线程。
1.3 区别与联系

线程必须在某个进行中执行。
一个进程可以包含多个线程,其中有且只有一个主线程。
多线程共享同个地址空间、打开的文件以及其他资源。
多进程共享物理内存、磁盘、打印机以及其他资源。

2、选择多线程还是多进程?


根据应用选择类型的
一般分为3种 CPU 密集型、磁盘 I/O 密集型、网络I/O密集型

CPU 密集型:程序比较偏重于计算,需要经常使用 CPU 来运算。如科学计算,机器学习等。
I/O 密集型:顾名思义就是程序需要频繁进行输入输出操作。爬虫程序、数据分析与挖掘属于CPU+磁盘IO密集型。

CPU 密集型,建议使用多进程。
而多线程就更适合应用于 I/O 密集型程序。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值