PHP比C/C++或Java少了什么?多线程,多线程,多线程……
2015-09-12 00:00
676 查看
昨天和一个前同事聊天,各种吐槽PHP,吐槽Swoole,他认为PHP到处是坑,PHP局限很大。PHP+Swoole不适合做高并发服务器,C+Swoole才是最好的方案。C++有各种数据结构,C++可以开线程,C++可以共享对象。看来有必要好好得说明一下了。
是的。PHP比C/C++、Java少了多了多线程。PHP只有多进程的方案,所以PHP里的全局变量和对象不是共享的、数据结构也不能跨进程操作、Socket文件描述符不能共享等等。所以PHP有局限?
多线程看似比多进程要强大很多,实际上我可以负责任的告诉你,多线程带来的坑更多。
数据同步问题会让你崩溃的。要么就牺牲性能到处加锁,要么就用地狱难度的无锁并发编程,据我所知目前国内能掌握此项技能的人凤毛麟角。
不要以为加锁就万事大吉了,你会在死锁问题上栽个大跟头。当你的程序逻辑复杂后,锁越来越难控制了,一旦死锁你的程序基本上就完了。
某个线程挂了那所有线程都会退出
反而在看多进程,其实就简单的多了。
PHP比C/C++或Java少了什么?多线程,多线程,多线程……
是的。PHP比C/C++、Java少了多了多线程。PHP只有多进程的方案,所以PHP里的全局变量和对象不是共享的、数据结构也不能跨进程操作、Socket文件描述符不能共享等等。所以PHP有局限?多线程看似比多进程要强大很多,实际上我可以负责任的告诉你,多线程带来的坑更多。
数据同步问题会让你崩溃的。要么就牺牲性能到处加锁,要么就用地狱难度的无锁并发编程,据我所知目前国内能掌握此项技能的人凤毛麟角。
不要以为加锁就万事大吉了,你会在死锁问题上栽个大跟头。当你的程序逻辑复杂后,锁越来越难控制了,一旦死锁你的程序基本上就完了。
某个线程挂了那所有线程都会退出
反而在看多进程,其实就简单的多了。
相关文章推荐
- Effective C++ —— 构造/析构/赋值运算(二)
- C/C++重要知识点总结
- 腾讯的C++面试真有趣
- C++内存布局
- c语言中对于文件操作的一些学习
- 基于C语言的万年日历
- 求解 s = (1*1)!+(2*2)! + (3*3)!+...+(n*n)! (C语言)
- 腾讯面试题总结,似乎是面试C++方向的(小巫总结)
- 第三讲:C++基础语法 & 创建第一个场景 ------学习笔记
- 【leetcode】Largest Number --C++
- 黑马程序员——ios开发基础之C语言预处理命令与文件操作
- 黑马程序员——ios开发基础之C语言之进制转换、位运算与内存管理
- 黑马程序员——ios开发基础之C语言数组、指针与结构体
- 项目11.5 坐标转换
- 黑马程序员——ios开发基础之C语言程序结构分类与函数
- c++类的编程规范
- 矩阵计算工具——Eigen的简单用法
- 1、C、C++、JAVA、Python 关系
- C++的const类成员函数
- 项目11.4输入3个双精度实数,分别求出它们的和、平均值、平方和以及平方和的开方,并输出所求出各个值