PHP-FPM配置优化
作者QQ:67065435 QQ群:669756510
本站内容全部为作者原创,转载请注明出处!
基本概念
1、进程
- 进程是有特定功能的程序关于指定数据集合的一次运行活动,是系统资源分配调度的独立单位;
- 每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信;
- 由于进程占据独立的内存,所以上下文进程间的切换开销比较大,但比较稳定安全。
2、线程
- 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的独立单位;
- 线程自己基本上不拥有系统资源,但是它可与同一进程的其它线程共享进程拥有的全部资源;
- 由于线程间通信主要通过共享内存,所以上下文切换资源开销较少,但容易丢失数据。
3、协程
- 协程是用户态轻量级线程,协程的调度完全由用户控制;
- 协程调度切出时将寄存器、上下文和栈保存,切回时恢复寄存器、上下文和栈;
- 由于协程基本没有内核切换开销,可以不加锁的访问全局变量,所以上下文的切换非常快。
区别联系
进程、线程
- 地址空间:线程共享进程所拥有的系统资源,进程独占系统的部分资源;
- 资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源;
- 线程是处理器调度的基本单位,但进程不是;
- 线程不能够独立执行,必须由应用程序提供线程执行控制;
- 进程、线程均可并发执行。
协程、线程
- 一个线程可以多个协程,一个进程也可以单独拥有多个协程;
- 线程进程都是同步机制,而协程则是异步;
- 协程能保留上一次调用时的状态,每次过程重入时都能进入上一次调用的状态。