【发布时间】:2019-01-04 11:00:53
【问题描述】:
我看到的大多数 Node JS/ReactPHP 教程更像是,您不需要等待 5 秒计时器来回显某些内容。 EventLoop 可以稍后处理。
如下例所示(注意这与语言无关):
timer(run 5 seconds later){
print 'username';
}
print ', another text';
// non A-Sync output is like = 'username, another request'
// A-Sync output is like = ', another requestusername'
但这是我们正在处理的同一个文件。如果我们连接到 i/o 套接字会怎样。
喜欢这个例子:(requestfile.js)
connectSocket(takes 5 seconds to return a result){
print result;
}
//end of the file
我有 2 个问题(reactphp 或 nodejs 无关,异步对我很重要)
1-如果我们收到 2 个用户请求,第一个连接并等待 5 秒,A-Sync 是否可以在等待第一个请求的响应回调时在同一线程中运行第二个请求。 (或者异步仅意味着,您可以在同一个文件中执行独立操作,例如:连接此套接字 5 秒时打印页脚)
2-EventLoop 运行在哪个核心/线程中?它是否独立于请求线程。如果不是,我们如何不松开 Eventloop 流程?如果套接字返回一个值,谁是(线程/核心)控制它? EventLoop 是否可能每秒运行一次以检查回调? (我想,不管它有多快,但机器代码正在线性同步运行(一个接一个))
【问题讨论】:
标签: javascript node.js asynchronous asyncsocket reactphp