Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Node.js 异步\u ID是否可能溢出?_Node.js_Asynchronous_Integer Overflow_Async Hooks - Fatal编程技术网

Node.js 异步\u ID是否可能溢出?

Node.js 异步\u ID是否可能溢出?,node.js,asynchronous,integer-overflow,async-hooks,Node.js,Asynchronous,Integer Overflow,Async Hooks,在node.js中,当执行本质上异步的操作时,会为其生成一个async\u id。此id可通过async\u hooksAPI访问 由于ID是整数(64位),它们有可能在某个时候溢出吗 ID重置的唯一原因似乎是出现异常时。 我还没有深入研究Node.JS代码,对于这个答案,我假设那些async\u id是从0开始生成并向上生成的。如果负值也出现在等式中,这会变得更疯狂 当您有64位(int)来存储一个值时,您有2^63=9223372036854775808~=9.22e+18可能的正值(包括0

在node.js中,当执行本质上异步的操作时,会为其生成一个
async\u id
。此id可通过
async\u hooks
API访问

由于ID是整数(64位),它们有可能在某个时候溢出吗

ID重置的唯一原因似乎是出现异常时。
我还没有深入研究Node.JS代码,对于这个答案,我假设那些
async\u id
是从0开始生成并向上生成的。如果负值也出现在等式中,这会变得更疯狂

当您有64位(int)来存储一个值时,您有2^63=9223372036854775808~=9.22e+18可能的正值(包括0)

这意味着在程序运行时,可能要创建的异步索引的数量

让我们假设一个极端情况,在这种情况下,您的程序每秒创建10亿个异步操作,并连续运行100年(这两种情况几乎都不可能):

  • 100年=3153600000~=3.15e+9秒
  • 100000000异步操作*3153600000秒=31536000000000~=3.15e+18
这意味着您的程序将不得不在大约200年内不间断地运行
,以实际溢出promise索引。这意味着300年

你可以自己判断,但我认为这在经验上是不可能的


希望这能有所帮助。

我还没有深入研究Node.JS代码,对于这个答案,我将假设那些
异步id
是从0开始生成的,并且一直在上升。如果负值也出现在等式中,这会变得更疯狂

当您有64位(int)来存储一个值时,您有2^63=9223372036854775808~=9.22e+18可能的正值(包括0)

这意味着在程序运行时,可能要创建的异步索引的数量

让我们假设一个极端情况,在这种情况下,您的程序每秒创建10亿个异步操作,并连续运行100年(这两种情况几乎都不可能):

  • 100年=3153600000~=3.15e+9秒
  • 100000000异步操作*3153600000秒=31536000000000~=3.15e+18
这意味着您的程序将不得不在大约200年内不间断地运行
,以实际溢出promise索引。这意味着300年

你可以自己判断,但我认为这在经验上是不可能的

希望这有帮助