python多线程编程——《python核心编程第四章》
来源:互联网 发布:众泰e200和知豆 编辑:程序博客网 时间:2024/05/20 15:58
1 引言
首先区分几个概念:
程序——能被计算机执行的文件;
进程——处于执行状态的程序,包含计算机为其分配的空间、内存、数据栈等资源;
线程——也称轻量级进程(迷你进程),在同一进程下执行,拥有相同的上下文(线程间消息传递更方便);可以认为他们是在同一主进程或“主线程”中并行运行的一些“迷你进程”。
从上面的概念可以发现:
针对能够采用多线程编程的任务,如一个进程可以拆解为多个并发执行的子任务的情况,其效率肯定比单进程顺序执行的效率高。但是,由于多线程在同一上下文环境下执行,对一些公用资源会出现竞争的情况,如何解决些问题?
这就是贯穿本章的两个重点:
- 如何实现多线程编程?(需要用哪些模块的那些方法?)
- 如何解决资源的同步问题?(即锁的问题。)
2 几种多线程编程实现方法
常见多线程编程的实现方法包括:
- thread模块实现;
- threading模块实现;
2.1 thread模块的多线程实现
首先,看看最基本的多线程实现。
上面程序中之所以要加sleep(6)
是因为thread模块中没有守护进程,导致最先执行完的进程结束后,整个程序会退出。这也是推荐用threading模块的主因。
在每个程序中添加sleep(6)
这样的等待函数显然不合适,我们再看看加上锁以后的一个改进版本。thread模块中锁的使用
2.2 thread模块的多线程实现
- 方法一:创建Thread的实例,传给它一个函数。
- 方法二:创建Thread的实例,传给它一个实例。
- 方法三:派生Thread的子类,再将子类实例化。
3 同步原语的几种形式
- 锁Lock;
- 信号量(计数器)方法实现;
- Queue模块实现;
3.1 锁Lock
3.2 信号量(计数器)的使用
3.3 Queue模块队列的应用
4 总结
扯了这么久,多线程到底是个什么东西?
简而言之:
如果要执行某个算法或函数,单线程会顺序的执行其中的每一步,直至结束;多线程可以同时执行多个算法或函数,这样效率就更高。
阅读全文
0 0
- python多线程编程——《python核心编程第四章》
- Python核心编程——第四章Python对象
- Python核心编程 第四章
- 《Python核心编程》第四章:Python 对象
- Python核心编程第四章笔记
- Python核心编程 练习 第四章
- 《Python核心编程》第四章练习解析
- python核心编程(十五)— 多线程编程
- 《Python核心编程》第二版--第四章 Python对象
- Python核心编程 第18章 多线程
- Python核心编程(第三版)课后习题解答——第四章
- python核心编程---读书笔记:第18章 多线程编程
- python核心编程——python对象
- python核心编程2参考答案(第四章)
- 《Python核心编程》第二版第四章练习
- 《python核心编程第二版》第四章练习解析
- python核心编程v2.0 第四章习题答案
- Python核心编程(第二版)第四章练习题
- 深度学习笔记——TensorFlow学习笔记(一)入门
- S
- 如何开发一个程序
- Java常见帮助类(4)MD5加密
- jQuery概述及版本区别
- python多线程编程——《python核心编程第四章》
- chrono库碰到的那些坑
- 倒计时
- Intent实现activity跳转
- AR的前景
- USACO-Section1.3 Ski Course Design
- Java常见帮助类(5)地图地址帮助类
- iOS 简单的视频直播功能开发(实时视音频流录制编码+RTMP传输+实时拉流解码播放)
- Uber 谷歌Waymo也开始研发自动驾驶卡车