Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 节点线程是模拟循环的错误位置吗?_Multithreading_Node.js_Asynchronous_Simulation - Fatal编程技术网

Multithreading 节点线程是模拟循环的错误位置吗?

Multithreading 节点线程是模拟循环的错误位置吗?,multithreading,node.js,asynchronous,simulation,Multithreading,Node.js,Asynchronous,Simulation,比如说,有一个天气模拟器生成/计算合成天气,每0.5秒就会触发一个设置间隔,并运行一系列计算,以获取读数并处理数据,使其可读 然后,它将通过套接字向登录方发送相关数据,可能只有在数据实际发生更改时才会这样做 那么,是否最好在子进程中单独运行天气模拟/生成器,并将I/O保留在节点的单个线程中 或者,这会产生锁定要求吗?如果计算量很大,我强烈建议您将它们作为子进程运行,并保持node.js事件循环响应。如果您收听childs标准输出以获取事件数据并完成,则可以在数据可用时立即发送数据 确保使用异步读

比如说,有一个天气模拟器生成/计算合成天气,每0.5秒就会触发一个设置间隔,并运行一系列计算,以获取读数并处理数据,使其可读

然后,它将通过套接字向登录方发送相关数据,可能只有在数据实际发生更改时才会这样做

那么,是否最好在子进程中单独运行天气模拟/生成器,并将I/O保留在节点的单个线程中


或者,这会产生锁定要求吗?

如果计算量很大,我强烈建议您将它们作为子进程运行,并保持node.js事件循环响应。如果您收听childs标准输出以获取事件数据并完成,则可以在数据可用时立即发送数据


确保使用异步读写,这样就不会开始阻塞,也不必担心锁。

如果计算量很大,我强烈建议您将它们作为子进程运行,并保持node.js事件循环响应。如果您收听childs标准输出以获取事件数据并完成,则可以在数据可用时立即发送数据


确保您使用异步读写,这样您就不会开始阻塞东西,也不必担心锁。

我认为应该指导您的原则是分离关注点。node.js服务器是一个通信管道。你的天气模拟器就是这样。对其中一项所做的更改不太可能涉及到另一项。这也是一个更具可扩展性的选择,如果以后您的天气模拟器变得更重,或者您开始获得比预期更多的用户


如果web客户端可以,我相信他们会希望直接订阅天气事件订阅源,但不要因此而误以为应该使用模拟器将WebSocket搞乱。

我认为指导您的原则是关注点分离。node.js服务器是一个通信管道。你的天气模拟器就是这样。对其中一项所做的更改不太可能涉及到另一项。这也是一个更具可扩展性的选择,如果以后您的天气模拟器变得更重,或者您开始获得比预期更多的用户


如果web客户端可以,我肯定他们会想直接订阅天气事件订阅源,但不要因此而误以为应该用模拟器来搞乱WebSocket。

现在我想起来了,如果登录的用户能够“伸手”并涉猎天气会怎么样,操纵条件。现在我想起来了,如果登录的用户能够“用手够到”并且能够掌握天气,操纵条件,会怎么样。在“反向”中是否仍然相同?