当前位置: 首页 > news >正文

免费影视网站建设/舆情分析网站

免费影视网站建设,舆情分析网站,嘉兴企业网站制作,wordpress sql文件大小很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你…

很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。

什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。

现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任务的呢?

答案就是操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务3,执行0.01秒……这样反复执行下去。表面上看,每个任务都是交替执行的,但是,由于CPU的执行速度实在是太快了,我们感觉就像所有任务都在同时执行一样。

真正的并行执行多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核心数量,所以,操作系统也会自动把很多任务轮流调度到每个核心上执行。

对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。

有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。

由于每个进程至少要干一件事,所以,一个进程至少有一个线程。当然,像Word这种复杂的进程可以有多个线程,多个线程可以同时执行,多线程的执行方式和多进程是一样的,也是由操作系统在多个线程之间快速切换,让每个线程都短暂地交替运行,看起来就像同时执行一样。当然,真正地同时执行多线程需要多核CPU才可能实现。

我们前面编写的所有的Python程序,都是执行单任务的进程,也就是只有一个线程。如果我们要同时执行多个任务怎么办?

有两种解决方案:

一种是启动多个进程,每个进程虽然只有一个线程,但多个进程可以一块执行多个任务。

还有一种方法是启动一个进程,在一个进程内启动多个线程,这样,多个线程也可以一块执行多个任务。

当然还有第三种方法,就是启动多个进程,每个进程再启动多个线程,这样同时执行的任务就更多了,当然这种模型更复杂,实际很少采用。

总结一下就是,多任务的实现有3种方式:

  • 多进程模式;
  • 多线程模式;
  • 多进程+多线程模式。

同时执行多个任务通常各个任务之间并不是没有关联的,而是需要相互通信和协调,有时,任务1必须暂停等待任务2完成后才能继续执行,有时,任务3和任务4又不能同时执行,所以,多进程和多线程的程序的复杂度要远远高于我们前面写的单进程单线程的程序。

因为复杂度高,调试困难,所以,不是迫不得已,我们也不想编写多任务。但是,有很多时候,没有多任务还真不行。想想在电脑上看电影,就必须由一个线程播放视频,另一个线程播放音频,否则,单线程实现的话就只能先把视频播放完再播放音频,或者先把音频播放完再播放视频,这显然是不行的。

Python既支持多进程,又支持多线程,我们会讨论如何编写这两种多任务程序。

小结

线程是最小的执行单元,而进程由至少一个线程组成。如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间。

多进程和多线程的程序涉及到同步、数据共享的问题,编写起来更复杂。

更多内容,可关注作者的微信公众号:胖哥真不错。

http://www.lbrq.cn/news/1090909.html

相关文章:

  • 南京做网站优化的企业排名/seo 重庆
  • 网站上传wordpress/游戏推广员是做什么的
  • p2p理财网站开发框架/一站式软文发布推广平台
  • 天津建站平台/湖北网站建设制作
  • 宁夏住房和建设厅官方网站/新app推广去哪里找
  • 那个网站专门做婚纱相册/网络推广自学
  • python做网站缺点/seo课堂
  • 长沙个人做网站排名/优化防控措施
  • 网站建设入门/如何做好一个网站
  • 劳力士手表价格及图片 官方网站/亚马逊跨境电商
  • 特效素材网站/什么样的人适合做策划
  • 网站单子/找索引擎seo
  • 中职网站建设与管理/网络营销介绍
  • 广州网站建设广州网络推广公司好/国外网站推广平台有哪些?
  • 找别人做网站/如何做谷歌seo推广
  • 深圳外包网站制作公司/网络推广推广外包服务
  • 长沙网站开发湖南微联讯点不错/做公司网站
  • 自己如何做公司网站/潍坊seo外包平台
  • 网站建设哪个部门管理/百度搜索引擎下载
  • 事业单位建设网站/百度seo关键词工具
  • 网站 网络架构/seo课程排行榜
  • 百度资料怎么做网站/电子商务网站建设教程
  • 做漫画网站/互联网推广引流公司
  • 如何做网站优化推广/百度手机浏览器下载
  • 可靠的政府网站建设公司/销售crm客户管理系统
  • 怎么做提高网站排名/电商培训班一般多少钱一个月
  • 凌云网招聘信息/免费seo快速排名工具
  • 100个最好的微信小程序/西安seo优化推广
  • 做一家视频网站/免费html网站制作成品
  • 做网站的收入/如何seo推广
  • 2025年7月26日训练日志
  • VLAN的划分(基于华为eNSP)
  • C++___快速入门(上)
  • 深度学习(鱼书)day03--神经网络(后两节)
  • 对比JS“上下文”与“作用域”
  • Python 面向对象基础