多线程:理论上能在同一个时间段执行多个程序片段,每个程序片段就看作是一个线程。为什么要说理论上,因为实际在操作系统中真正的在同一时间段基本是不存在的,但是在软件编程中我们可以理解为它是在同一时间段执行的。
同步:在多个线程同时执行到一个对象节点时,同时执行会使这个对象发生冲突,因此,在一个线程执行到这里的时候另外其他的线程也要处理这个对象时则需要等待,这样称之为同步。反之,则称之为异步。通常,遇到需要同步的情况,不同的编程语言都选择通过加锁的方式来实现同步,python 亦是如此。
在 python 语言中提供了两个和多线程线程相关的模块,一个是 thread 模块、另一个是 threading 模块。相比于 threading 模块,thread 模块提供的功能和函数相对比较少,它只提供了低级别的线程和一个简单的锁用来做同步,而 threading 模块相对处理多线程的函数比较多。
-
threading 重点是Thread模块
import threading
-
目标函数可以实例化一个Thread对象,每一个Thread对象都代表一个线程,可以通过start()方法启动线程。
class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
Thread类是threading模块的主要执行对象,下面是Thread类的属性和方法列表:
一般的处理操作:
并发:用来处理多线程的操作,读写(本地,远程)
io密集型任务(会有大量的等待过程)
-
网络延迟较大,系统内核拷贝
-
适合上下文切换
-
携程(高性能服务器)Coroutine:下一代Threading
-
适用分布式计算
-
使用python的Threading库
并行:用来进行排序,数值计算,矩阵计算
计算密集型任务(会占用大量内存)
-
数据清洗,大型数值计算
-
python的Multiprocessor库(用于数据分析,后期csdn会开专门的栏目讲解)
-
上下文开销巨大,一个cpu核负责一个计算任务的生命周期(一台计算机的核有限,因此)
-
适合并行计算
小结:
只要涉及到等待,网络延迟的,拷贝内核造成的延迟最适合的方式是并发(threading),做排序,做计算的时候并行(Multiprocessor)会提高更高的并行度。
掌握python多线程的前提是,python基础要掌握
相关学习如下:
零基础必备:全套Python教程_Python基础入门视频教程,零基础小白自学Python入门教程
python多线程黑马程序员python多线程编程_哔哩哔哩_bilibili
python基础进阶:Python深入浅出进阶教程【敢信?】收藏=点赞十倍
Python实战Djongo项目:python企业级开发项目-手把手从0到1开发《美多商城》
mysql数据库:MySQL全套教程,MySQL从基础到黑马订单案例实战
机器学习算法:3天快速入门python机器学习
聚类算法:360°解读机器学习经典算法——聚类算法
数据挖掘:Python教程,4天快速入门Python数据挖掘,系统精讲+实战案例
Web服务器:Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程
180分钟爬虫入门:180分钟轻松获取疫情数据,Python爬虫入门课
Scrapy框架:Python爬虫基础,快速入门Scrapy爬虫框架
多线程:python多线程编程
人工智能入门:智能机器人软件开发教程基础,从helloworld到神经网络
人工智能深度学习:智能机器人软件开发教程基础,从helloworld到神经网络
图像与视觉处理:人工智能教程|零基础学习计算机视觉快速入门