PHP 多进程和多线程的优缺点

多进程

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

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

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

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

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

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

多线程

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

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

3.多线程也存在一些问题:

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

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

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

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

更多PHP相关知识,请访问PHP教程!

更多相关文章

  1. PHP使用swoole实现多线程爬虫
  2. 解决CentOS7中php-fpm进程数过多导致服务器内存资源消耗较大的问
  3. Java并发编程:线程封闭和ThreadLocal详解
  4. 100道Java并发和多线程基础面试题大集合(含解答),这波面试稳了~
  5. Java多线程打辅助的三个小伙子
  6. 深入学习 Java 线程池
  7. Java 多线程:volatile 变量、happens-before 关系及内存一致性
  8. Linux进程管理
  9. 到底多少线程算是线程数太多?

随机推荐

  1. 如何解决go语言乱码问题
  2. 关于Golang 全局sql数据库连接
  3. go语言最适合做什么
  4. go语言string转int的方法
  5. 记录Golang Recover的一个小坑
  6. 哪些大公司在用go语言
  7. go是什么开发语言
  8. Go语言属于什么语言
  9. go语言常用命令有哪些
  10. go语言有引用传递么