Python笔记

进程和线程

对于操作系统来说,一个任务就是一个进程(Process)。

比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就是启动了一个记事本进程,打开一个word就是启动了一个word进程。

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

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

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

多线程和多进程最大的不同在于,多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响,而多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。

在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。



递归和迭代

递归 类似于 俄罗斯套娃,调用自己;

迭代 类似于一串珠链;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 1,789评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,533评论 25 709
  • 我叫不醒一个装睡的人,我也拯救不了一个根本都不想活的人,我也教不了一个根本都不想学习的人. 要知道,这世界上哪有什...
    秦天天阅读 1,151评论 1 0
  • 他坐在电脑前,宽厚的背放松的稍稍弯着,身上黑色的衬衫,领口微微张开。为了打字方便,他的衬衫的袖口卷到肘部,打字的原...
    会计酱阅读 184评论 0 0
  • 一个人在大学的校园里慢慢地、匆匆地,听着歌、自言自语地走了快要两年了,每个人各有各的心事,哪有那么多的朋友可谈?我...
    苏笛莫阅读 337评论 0 0