没有合适的资源?快使用搜索试试~ 我知道了~
Python并发:多线程与多进程的详解
5星 · 超过95%的资源 11 下载量 119 浏览量
2020-12-31
03:35:08
上传
评论
收藏 604KB PDF 举报
温馨提示
本篇概要 1.线程与多线程 2.进程与多进程 3.多线程并发下载图片 4.多进程并发提高数字运算 关于并发 在计算机编程领域,并发编程是一个很常见的名词和功能了,其实并发这个理念,最初是源于铁路和电报的早期工作。比如在同一个铁路系统上如何安排多列火车,保证每列火车的运行都不会发生冲突。 后来在20世纪60年代,学术界对计算机的并行计算开始进行研究,再后来,操作系统能够进行并发的处理任务,编程语言能够为程序实现并发的功能。 线程与多线程 什么是线程 一个线程可以看成是一个有序的指令流(完成特定任务的指令),并且可以通过操作系统来调度这些指令流。 线程通常位于进程程里面,由一个程序计数器、一个堆栈
资源推荐
资源详情
资源评论
Python并发并发:多线程与多进程的详解多线程与多进程的详解
本篇概要本篇概要
1.线程与多线程
2.进程与多进程
3.多线程并发下载图片
4.多进程并发提高数字运算
关于并发关于并发
在计算机编程领域,并发编程是一个很常见的名词和功能了,其实并发这个理念,最初是源于铁路和电报的早期工作。比如在
同一个铁路系统上如何安排多列火车,保证每列火车的运行都不会发生冲突。
后来在20世纪60年代,学术界对计算机的并行计算开始进行研究,再后来,操作系统能够进行并发的处理任务,编程语言能
够为程序实现并发的功能。
线程与多线程线程与多线程
什么是线程
一个线程可以看成是一个有序的指令流(完成特定任务的指令),并且可以通过操作系统来调度这些指令流。
线程通常位于进程程里面,由一个程序计数器、一个堆栈和一组寄存器以及一个标识符组成。这些线程是处理器可以分配时间
的最小执行单元。
线程之间是可以共享内存并且互相通信的。但是当两个线程之间开始共享内存,就无法保证线程执行的顺序,这可能导致程序
错误,或者产生错误的结果。这个问题我们日后会专门提及。
下面这个图片展示了多个线程在多个CPU中的存在方式:
线程的类型线程的类型
在一个典型的操作系统里面,一般会有两种类型的线程:
1.用户级线程:我们能够创建、运行和杀死的线程;
2.内核级线程:操作系统运行的低级别线程;
Python工作在用户级线程上,我们介绍的内容也主要是在用户级的线程上运行的。
什么是多线程什么是多线程
现在的CPU基本上都是多线程的CPU,比如我们随意从京东上找一个Inter的酷睿i5处理器,看看它的产品规格:
这些CPU能够同时运行多个线程来处理任务,其实从本质上来说,这些CPU是利用一个能够在多个线程之间快速切换的单个
内核来完成多线程的运行的,切换线程的速度足够快,所以我们并不会感觉到。但实质上,它们并不是同时运行的。
为了形象的理解多线程,我们来回忆一个场景。
在大学时代,期末的时候,有些科目的老师为了不为难大家,把考试设为开卷考试,不知道大家面对开卷考试的时候,做题的
顺序是怎样的?
在单线程的工作模式下,我们从选择题到填空题到简答题再到分析题,一个一个按顺序的写。
遇到一个特别难的题目,我们就要翻书翻资料了,当然既然是开卷考试,有些题目的答案就不可能直接出现在教科书中,那么
我们就要花费更多的时间来找答案,直到考试结束,因为某个难题耗费的翻书时间太多,导致后面一些简单的题目也没用做,
嗯,开卷都写不完试卷,挂科名额就给你了。
而在多线程的工作模式下,我们也是按顺序写,但是遇到难题时,我们会稍微从书中找找答案,如果没找到,就先做下面的题
目,把会做的题目做好,做好了容易的题目,再回到那个难题上,仔细从书中的蛛丝马迹中找答案。
在这个例子里面,我们只是一个人来完成,如果想要更快地完成考试,就得跟其他同学通力合作和分工了。
让我们看看线程的一些优点:让我们看看线程的一些优点:
1.多线程能够有效提升I/O阻塞型程序的效率;
2.与进程相比,占用的系统资源少;
3.线程间能够共享资源,方便进行通信;
线程还有一些缺点:线程还有一些缺点:
1.Python中有全局解释器锁(GIL)的限制;
2.虽然线程之间能够进行通信,但是容易导致程序结果出错,使用的时候必须小心;
3.在多线程之间切换的计算代价高,会导致程序的整体性能下降。
进程与多进程进程与多进程
进程在本质上与线程非常相似,进程几乎可以完成线程能够完成的任何事情。
按照上面开卷考试的例子,如果我们和室友组成一个小团伙,那么我们就有四个CPU(4个人),四个人分别写和找不同的答
案,这样考试的效率会提高很多。
一个进程里面,包含一个主线程,还可以生成很多子线程,每个线程都包含自己的寄存器组合堆栈。如果有需要的话,可以将
它们组成多线程。
下面是单线程单进程和多线程单进程的示例:
剩余7页未读,继续阅读
资源评论
- 滕扬Lance2023-07-25容详实,以实际应用案例为基础,使得理论与实践相结合。
- Crazyanti2023-07-25容清晰,语言通俗易懂,适合初学者入门。
- 网络小精灵2023-07-25件讲解了Python并发的核心概念,对于想要深入了解并发编程的人来说很有帮助。
- 以墨健康道2023-07-25线程与多进程的比较与区别进行了合理的讲解,让读者在选择并发方式时能更加清晰明晰。
- 坑货两只2023-07-25出了一些实用的多线程与多进程的编程技巧,让读者能够更加高效地使用Python并发。
weixin_38558659
- 粉丝: 6
- 资源: 917
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功