【进程与线程】概念

程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程

程序和进程的区别:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念

进程的优点:提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。

进程的缺点

  • 进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了。
  • 进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些工作不依赖于输入的数据,也将无法执行

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

进程和线程的区别:

1.线程可以共享创建它的进程的地址空间;

   进程有它们各自的地址空间。

2.线程可以直接访问其进程的数据段;

   进程有自己的父进程的数据段副本。

3.线程可以直接与进程的其他线程通信;

   进程必须使用进程间通信与同级进程通信。

4.新线程很容易创建;

   新进程需要复制它的父进程。

5.线程可以控制同一进程的线程;

   进程只能对子进程进行控制。

6.对主线程的更改(取消、优先级更改等)可能会影响该进程的其他线程;

   对父进程的更改不会影响子进程。

GIL锁(全局解释器锁Global Interpreter Lock)

在CPython中,全局解释器锁是防止多个本机线程同时执行Python字节码的互斥体。主要是因为CPython的内存管理不是线程安全的。

GIL并不是Python的特性,Python完全可以不依赖于GIL,但是GIL是CPython的特点。

猜你喜欢

转载自www.cnblogs.com/q1ang/p/9210689.html