1.python进程、线程、多线程

 2018-07-16

1.进程

简单理解:进程就是一段程序执行的过程。

广义理解:进程就是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

进程是cpu调度和分配的基本的分配单元,也是基本的执行单元。

进程的状态:就绪获取cpu外的所有资源,只要分配资源就可以马上执行。

      运行获得了分配的资源,程序开始执行。

      阻塞条件不满足时,等待满足时才执行。

一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。

1.就绪→执行
处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。

扫描二维码关注公众号,回复: 2190918 查看本文章

2. 执行→就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。

3. 执行→阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

4. 阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

2.线程

理解:一个进程可以包含若干个进程,一个进程至少有一个线程。线程可以利用进程所拥有的资源,在引入线程的操作系统中,把进程作为分配资源的基本单位,线程作为独立运行和调度的基本单位,相比进程而言线程调度资源消耗小,可提高系统多个程序间并发执行程度。

3.多线程

多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。

网上看到一个很好的例子就是:把火车车厢比喻成多线程,火车就是进程

4.进程和线程的区别?

  (进程)有独立的地址空间,一个进程崩溃后,保护模式下不会对其它进程有影响。

  (线程)有自己的堆栈和局部变量,线程之间没有单独的地址空间,一个线程死掉等于整个进程死掉,因此多进程的程序比多线程的程序更健壮,但是进程切换时资源消耗大,效率低。对于同时进行并且共享某些资源变量的并发操作,只能用线程。

 #一个程序至少有一个进程,一个进程至少有一个线程。

 #线程的划分尺度小于进程,使得多线程的并发性高。

 #进程在执行过程中有独立的内存单元,多线程共享内存,极大提高程序运行效率。

 #每个独立的线程有一个程序运行的入口。顺序执行序列和程序的出口。但是线程不能独立执行,必须依存在程序中,由应用程序提供多      个线程执行控制。

 #多线程的程序意义在于一个应用程序中,有多个执行部分可以同时执行。

优缺点:线程开销小,不利于资源的管理与保护,进程则相反。

    线程适合于在多核处理机上运行,而进程可以跨机器迁移。

猜你喜欢

转载自www.cnblogs.com/lvjing/p/9320955.html