首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
14赞
639
当前位置:
开发笔记
>
编程语言
> 正文
PHP多线程和socket可靠不可靠 或者好不好?
作者:mobiledu2402852413 | 2021-09-08 09:45
回复内容:多线程可能不靠谱。PHP从一开始就不是为多线程环境而设计的,所以pthread这个扩展就需要深入PHP内核,做非常复杂的Hack编程。程序一复杂问题就来了,肯定会有很多BUG。Socket可靠不可靠,这个看人吧。PHP提供的socket系列函数都是对操作系统socket接口的封装而已,很底
回复内容:
多线程可能不靠谱。PHP从一开始就不是为多线程环境而设计的,所以pthread这个扩展就需要深入PHP内核,做非常复杂的Hack编程。程序一复杂问题就来了,肯定会有很多BUG。
Socket可靠不可靠,这个看人吧。PHP提供的socket系列函数都是对操作系统socket接口的封装而已,很底层。
所以对于PHP提供的socket函数,如果开发者靠谱,自然写出来的的程序就靠谱。开发者如果完全不懂什么是socket,自然写出来的程序是不靠谱的。
你可以了解一下PHP的swoole扩展,
http://www.
swoole.com/
php多线程一般是使用的 PHP: pthreads
扩展,我实际用过这个扩展,该扩展在使用过程中会有一些问题,比如coredump,所以不建议使用
php的socket使用到没有问题,性能也不错,毕竟是c的简单那的封装。并且github上有很多开源的php socket的项目
例如:
reactphp/react · GitHub
kakserpom/phpdaemon · GitHub
walkor/workerman · GitHub
他们都是基于php 多进程 + php socket + epoll等多路IO复用
推荐阅读
程序员
Postgres创建/恢复在亚马逊ec2上花费了大量时间
如何解决《Postgres创建/恢复在亚马逊ec2上花费了大量时间》经验,为你挑选了0个好方法。 ...
[详细]
程序员
带有多个跨度的文本溢出省略号
如何解决《带有多个跨度的文本溢出省略号》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在动态生成的表行jquery中添加和操作id
如何解决《如何在动态生成的表行jquery中添加和操作id》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何检测无法在android中连接wifi?
如何解决《如何检测无法在android中连接wifi?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
添加按钮到以编程方式创建的UIView
如何解决《添加按钮到以编程方式创建的UIView》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何从主目录访问产品风味类?
如何解决《如何从主目录访问产品风味类?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Android数据绑定NoSuchMethodError
如何解决《Android数据绑定NoSuchMethodError》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Spring Boot - 字体很棒的OTS解析错误:无法转换
如何解决《SpringBoot-字体很棒的OTS解析错误:无法转换》经验,为你挑选了2个好方法。 ...
[详细]
程序员
为什么YYYY-MM-DD!= YYYY/MM/DD
如何解决《为什么YYYY-MM-DD!=YYYY/MM/DD》经验,为你挑选了2个好方法。 ...
[详细]
程序员
使用whatsapp分享链接
如何解决《使用whatsapp分享链接》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何减少if语句的长列表?
如何解决《如何减少if语句的长列表?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用斯坦福NLP(StanfordNERTagger和StanfordPOSTagger)为西班牙语设置NLTK
如何解决《使用斯坦福NLP(StanfordNERTagger和StanfordPOSTagger)为西班牙语设置NLTK》经验,为你挑选了1个好方法。 ...
[详细]
程序员
由于LayoutManager为NULL,RecycleView在Fragment中崩溃
如何解决《由于LayoutManager为NULL,RecycleView在Fragment中崩溃》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在npm脚本中用uglify和exorcist管道浏览
如何解决《在npm脚本中用uglify和exorcist管道浏览》经验,为你挑选了1个好方法。 ...
[详细]
程序员
设置Highcharts x轴标签的宽度
如何解决《设置Highchartsx轴标签的宽度》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在之前添加hover for ::
如何解决《如何在之前添加hoverfor::》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Android:无法解决android studio中的依赖项
如何解决《Android:无法解决androidstudio中的依赖项》经验,为你挑选了1个好方法。 ...
[详细]
程序员
请求caretRectForPosition:NSTextStorage有很多变化
如何解决《请求caretRectForPosition:NSTextStorage有很多变化》经验,为你挑选了1个好方法。 ...
[详细]
程序员
静态成员函数与C语言绑定?
如何解决《静态成员函数与C语言绑定?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
为什么GNU binutils和GDB合并为一个包?
如何解决《为什么GNUbinutils和GDB合并为一个包?》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
mobiledu2402852413
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
actionscrip
bash
c#
c++
c语言
erlang
flutter
go
golang
java
javascript
lua
node.js
perl
php
python
scala
typescript
RankList | 热门文章
1
在elasticsearch上按类似UUID格式的字段进行查询
2
适用于MP4的Azure Web应用程序配置
3
Android Espresso.如何在TextInputLayout中检查ErrorText
4
python - 执行命令并获取输出
5
Android中的蓝牙3.0 HS支持
6
Spring Data Rest:如何在HAL浏览器中公开自定义rest控制器方法
7
iOS Test Flight应用程序安装失败
8
评估顺序>>和[++]
9
使用Web应用程序中的RxJava Observables无法解决性能提升的不可解决性
10
如何以编程方式构建AngleSharp CSS(或HTML)DOM
11
Visual Studio(Git提供程序)在所有文件上永久显示"挂起编辑"
12
Django rest框架代表flatten嵌套对象
13
对于CGFloat,Swift相当于ceilf
14
如何在AWS Lambda中访问标头?
15
如何从docker容器运行Karma测试?
16
更改为最新的Multidex后无法解析导入android.support.multidex.MultiDex
17
React Native - 用于静态图像的Openplaay的多平台等价物
18
startMonitoringSignificantLocationChanges在swift中不起作用
19
从无线电输入中删除边框圆圈
20
Android 6上的扩展文件
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有