Document
首页 php 多线程和多进程的区别

php 多线程和多进程的区别

江小白 2019-05-20 0 71

多进程

使用多进程, 子进程结束以后, 内核会负责回收资源

使用多进程, 子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.

一个常驻主进程, 只负责任务分发, 逻辑更清楚.

多进程方式更加稳定,另外利用进程间通信(IPC)也可以实现数据共享。

共享内存,这种方式和线程间读写变量是一样的,需要加锁,会有同步、死锁问题。

消息队列,可以采用多个子进程抢队列模式,性能很好

多线程

线程是在同一个进程内的,可以共享内存变量实现线程间通信

线程比进程更轻量级,开很大量进程会比线程消耗更多系统资源

多线程也存在一些问题:

线程读写变量存在同步问题,需要加锁

锁的粒度过大存在性能问题,可能会导致只有1个线程在运行,其他线程都在等待锁

同时使用多个锁,逻辑复杂,一旦某个锁没被正确释放,可能会发生线程死锁

某个线程发生致命错误会导致整个进程崩溃

打赏作者
打赏作者 打赏作者
免责声明:本文仅代表作者个人观点,与本网站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
作者: 2019-05-20 11:50:31

发表评论

看不清?点击更换

评论列表: