首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
异步非阻塞如何应用在项目中啊
异步客户端只能使用在cli命令行环境。因为php 90%以上都是WEB项目,请教异步非阻塞如何应用在项目中啊。
发布于7年前 · 0 次浏览 · 来自
提问
墨
墨追
异步客户端只能使用在cli命令行环境。因为php 90%以上都是WEB项目,请教异步非阻塞如何应用在项目中啊。
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2017-10-12
k
kiki
一些高并发,高延时的应用可以用异步。 比如 秒杀系统,这样每秒要承担数万甚至更高的请求,就需要异步。 或者 请求外网的一些网络接口,耗时很长,几秒甚至几十秒就可以用异步来解决。 一些通信程序,如果聊天服务器也可以使用纯异步。
赞
0
回复
2018-04-19
盛
盛
网络通信有阻塞和非阻塞之分,例如对于接收数据的函数recv:在阻塞方式下,没有数据到达时,即接收不到数据时,程序会停在recv函数这里等待数据的到来;而在非阻塞方式下就不会等,如果没有数据可接收就立即返回-1表示接收失败。
赞
0
回复
2018-04-19
j
jevon
IO时进入内核代码没有立即返回,则直到返回前用户的进程代码一直处于「阻塞」状态。 从IO请求到数据复制到进程空间的过程中,若进程代码发生过阻塞,则IO过程是「同步」的,反之「异步」。 同步和异步仅仅是关于所关注的消息如何通知的机制。同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者 阻塞和非阻塞应该是发生在消息的处理的时刻。阻塞其实就是等待,发出通知,等待结果完成。非阻塞属于发出通知,立即返回结果,没有等待过程。
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。