进程
程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就成为进程,程序和进程的区别,程序是指令的集合,它是进程运行的静态描述文本,进程是程序的一次执行活动,属于动态概念
有了进程为什么还要有线程?
进程只能同一时间干一件事
进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,即使进程中有些工作不依赖此输入的数据,也将无法执行
线程
线城是操作系统能够进行运算调度的最小单位,它包含在进程中,是进程的实际运行单位
进程和线程的区别
- 线程共享创建它的进程的内存空间,进程有自己独立的内存空间
- 线程可以直接访问其进程的数据段,进程有自己的父进程的数据段副本
- 线程可以直接与其进程的其他线程通信,进程必须使用进程间通信与兄弟进程通信
- 创建线程很容易,创建进程需要复制父进程
- 对主线程的更改(取消,优先级更改等)可能会影响进程其他线程的行为,对父进程的更改不会影响子进程
GIL锁,全局解释器锁
无论启动多少个线程,计算机有多个个cpu,Python在执行的时候在同一时刻只允许一个线程运行
GIL并不是Python特性,它是实现Python解释器cpython时所引入的一个概念
时间: 2024-10-05 22:56:10