您的位置:首页 > 编程语言 > Python开发

Python 第八章 进程和线程

2016-01-27 17:37 573 查看
进程和线程
对于操作系统来说,一个任务就是一个进程(Process),比如打开浏览器就是启动一个浏览器进程,打开一个word就是启动一个word进程。
有些进程不止同时干一件事,比如,打开word,它可以同时进行打字、拼写检查、打印等等,我们把进程内的“子任务”称为Thread(线程)。

由于每个进程至少干一件事,所以一个进程至少有一个线程。

我们前面编写的所有Python程序,都是执行单任务的进程,也就是只有一个进程。如果我们要同时执行多个任务怎么办?
有三种解决方案:
一种是启动多个进程,每个进程虽然只有一个线程,但是多个进程可以执行多个任务。
还有一种方法是启动一个进程,在一个进程内启动多个线程,这样,多个线程也可以执行多个任务。

还有一种就是启动多个进程,每个进程再启动多个线程。当然,这样的模型更复杂,很少用。

总结下,多任务实现的3种方式:
多进程模式
多线程模式
多进程多线程模式
同时执行多个任务通常各个任务之间不是没有关联,而是需要相互通信和协调,有时,任务1必须暂停等任务2完成后才能进行,有时任务3和任务4不能同时进行,所以,多线程和多进程的程序复杂度要远远高于我们之前写的哪些单进程程序。

因为复杂度高,调试困难,所以,不是迫不得已,我们也不想编写多个任务。
Python既支持多进程又支持多线程,我们会讨论如何编写这两种多任务程序。

小结:
线程是最小的执行单元,而进程至少由一个线程组成。如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间。
多进程和多线程的程序涉及到同步、数据共享的问题,编写起来更复杂。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 进程和线程