zl程序教程

您现在的位置是:首页 >  其他

当前栏目

线程是来干嘛的

2023-04-18 14:43:13 时间

PHP为什么没有线程,了解这个就了解了大半个编程世界。

所以:多看别人的博客、论坛、讨论(这个最深度、全面)。

参考:

  1. php本身不支持多线程的原因是什么,java为什么可以,php就不行?
  2. 吴子棋的回答我非常赞同。

php的多线程是做后台任务物理的。

以前我也一直纠结于PHP实现多线程,但多线程对PHP内核以及整个生态的关联太大了,对于 php-fpm 的 web 来说,多线程其实没多大意义。只有在后台运行复杂的任务时才有意义,

不同语言不同的特性。不要非得在PHP上追求go的并发特性。可以直接学go,成本也不高【语言是通的,最大的成本是phper去学并发的底层,老PHPer底层工作中慢慢积累后学Java等也不难】,收益还大。

从语言使用者角度,多线程也不是那么简单的,内存可见性和执行顺序是很容易掉的坑,无脑加锁的话又容易死锁或者伪并发。掌握多线程除了上好操作系统课,还要看几百页的书,还要多实践才搞得定。如果为了那10%不到的需求加了多线程,泛型要不要加呢?GUI要不要加呢?静态类型检查要不要加呢?把PHP搞那么复杂,唯一的优点都丢了。当你对语言有更高要求的时候,完全可以去学C#/Go/Java/C++,把PHP做起来别扭的那部分功能交给更合适的语言。解决问题的能力和经验是相通的,多学几门语言,在PHP上的投入并不会浪费。 https://www.zhihu.com/question/45502310/answer/236227858