event-loop 相关问题

事件循环是指无限循环的动作,用于根据回调和消息处理数据。

任务完成后是否可以立即中断AsyncIO事件循环?

看一下下面的简单程序: 导入异步 def 回调(_): 循环 = asyncio.get_running_loop() 循环.stop() 异步定义回显(消息): 打印(消息) 异步 def main(): 循环=

回答 1 投票 0

同样的代码,为什么执行结果不一致?

我有 HTML 代码。 我有 HTML 代码。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>demo</title> </head> <body> <script src="./script1.js"></script> <script src="./script2.js"></script> <script> console.log('inline-111') setTimeout(() => { console.log('inline-setTimeout-111') }, 0); </script> <script> console.log('inline-222') setTimeout(() => { console.log('inline-setTimeout-222') }, 0); setTimeout(() => { console.log('inline-setTimeout-333') }, 0); new Promise(resolve => { console.log('inline-Promise1') resolve() }) .then(function () { console.log('inline-promise2') }) .then(function () { console.log('inline-promise3') }) </script> </body> </html> 第一个脚本标签代码。 console.log("external-111"); setTimeout(() => { console.log("setTimeout-external-111"); }, 0); 第二个脚本标签代码。 console.log("external-222"); setTimeout(() => { console.log("setTimeout-external-222"); }, 0); setTimeout(() => { console.log("setTimeout-external-333"); }, 0); new Promise((resolve) => { console.log("external-Promise1"); resolve(); }) .then(function () { console.log("external-promise2"); }) .then(function () { console.log("external-promise3"); }); 在Google Chrome(Chrome119.0.6045.200)中运行时,结果是 external-111 setTimeout-external-111 external-222 external-Promise1 external-promise2 external-promise3 inline-111 inline-222 inline-Promise1 inline-promise2 inline-promise3 setTimeout-external-222 setTimeout-external-333 inline-setTimeout-111 inline-setTimeout-222 inline-setTimeout-333 在Firefox(121.0.1)中运行时,结果是 external-111 external-222 external-Promise1 external-promise2 external-promise3 inline-111 inline-222 inline-Promise1 inline-promise2 inline-promise3 setTimeout-external-111 setTimeout-external-222 setTimeout-external-333 inline-setTimeout-111 inline-setTimeout-222 inline-setTimeout-333 为什么第二行的输出不一致? 有好心的朋友可以尝试解释一下吗 首先,我想了解当多个脚本在浏览器中混合时事件循环将如何运行。但两次运行结果却引起了混乱。 最简单的解释是外部脚本的加载时间不同。请注意,这甚至不依赖于浏览器,但在同一浏览器中多次加载页面之间也会有所不同。 如果第二个外部脚本需要更长的时间来加载,则第一个脚本中安排的超时可能会在脚本执行之前运行。如果加载时间较短,则超时将在脚本执行后运行(但仍在超时之前 - 具有相同的毫秒值 - 由第二个脚本安排)。

回答 1 投票 0

使用 nio 和选择器的应用程序中的线程数比每个请求的线程数模型低多少?

我正在尝试使用nio通道和选择器来了解java中的非阻塞io, 这是我的理解,在每个请求的线程模型中,每次监听服务器套接字接受一个新的

回答 1 投票 0

下面的Browser Engine图和JS Runtime图之间的桥梁是什么?

我一直在阅读有关浏览器如何工作以及浏览器的组件是什么的内容。我看到了各种关于浏览器如何解析 JS 和渲染过程等的文章,但我不是

回答 1 投票 0

CommonJS 与 ESM 中 setImmediate() 和 setTimeout() 回调的优先级

如果使用 CommonJS 模块,使用 setImmediate 调用 setTimeout 会出现不可预测的行为。但如果你切换到ESM(package.json中的“type”:“module”),它总是会执行

回答 1 投票 0

为什么我看不到任务队列堆积起来?

我正在阅读并与 chatGPT 讨论 setTimeout 和 setInterval 的具体用途。据我了解,主要的 JavaScript 执行线程向 Web Timer API 发送一个回调函数和一个

回答 1 投票 0

在理解异步等待方面遇到困难

我是初学者。看到这段代码的输出后,对异步编程感到困惑 异步函数 f1() { console.log('这是 f1'); 让 res = 等待 f3(); console.log('f1 的结果...

回答 1 投票 0

这个ThreadPoolExecutor需要同步吗?

给定配置的执行者: ThreadPoolExecutor 执行器 = new ThreadPoolExecutor( 1, // 核心池大小 1, // 最大池大小 0, // keepAliv...

回答 1 投票 0

JavaScript 中处理微任务的顺序

我正在解决 Javascript 中的事件循环问题,但我不明白为什么输出顺序是 2, 1,而不是 1, 2。 f1(); Promise.resolve().then(() => { 控制台.log(2); }); 异步函数 f2(...

回答 1 投票 0

Nodejs 事件循环如何处理池阶段和检查阶段,同时处理数千个传入的 http 请求

想象一下我的Web应用程序如此受欢迎,我的nodejs Web服务器每秒处理数千个请求,每个请求回调调用setImmediate(cb),我不认为setImmediate回调ge...

回答 1 投票 0

为什么setImmediate函数在setTimeout之后执行

setImmediate(()=>{ console.log("设置立即函数调用") }) 设置超时(()=>{ console.log("setTimeout函数") }, 1000) 对于(令 i=0 ;i<=10000000000 ;i++)...

回答 1 投票 0

Asyncio Loop.call_later 计时精度

我试图让一个函数在事件循环上定期运行 以指定的速率调用该函数至关重要 我正在递归地安排函数使用 asyncio.call_l 运行...

回答 1 投票 0

节省CPU连续循环python

下面的文本是我到目前为止的代码,它运行得很好,唯一的问题是该程序占用了大量的CPU并且在我的电脑上造成了困难,我知道这是因为while循环t.. .

回答 1 投票 0

Qt 事件循环与其他语言/框架中的抽象相同吗?

作为我的问题的一个例子,当我们只想从 HTTP 服务器获取一些数据时,我想分享一个经常推荐的 API 示例: QNetworkRequest 请求; QNetworkAccessManager 经理;

回答 1 投票 0

试图解开Node JS事件循环的几个实验之谜

在制作了一些小功能组件之后,我继续对事件循环进行一些测试。 需要实验 NO -1 2 和 3 的帮助,并想知道它们的输出是如何得出的。 学到了E...

回答 1 投票 0

尽管达成共识,但未处理的 Promise 被拒绝

最近我偶然发现了一个有趣的错误。本质上,问题归结为这个例子: const waitResolve = (ms) => new Promise((resolve) => { 设置超时(()=> {

回答 1 投票 0

Node js:libuv 线程池如何工作?

我正在学习Node Js,我了解Node js的核心是基于事件循环的反应器模式。 当任何事件发生时,它都会进入事件队列,然后被 st...

回答 2 投票 0

VertxexecuteBlocking 使用事件循环而不是工作线程

我来自“一个请求=一个线程”的概念,现在我想了解使用 Vertx 的事件循环的概念。根据文档,如果我们使用阻塞操作,我们应该将其传递给executeBlocking m...

回答 2 投票 0

Event-Loop 在 Node.js 中如何工作?

我有这样的代码: 设置超时(()=> { 控制台日志(1) process.nextTick(() => { 控制台.log('1-1') }) }, 0) 设置超时(()=> { 控制台.日志(2) process.nextTick...

回答 1 投票 0

我使用 setTimeout() 有两个类似的函数,但它给了我两个不同的结果

在函数调用 call1 和 call2 中,我试图实现相同的目标,即延迟 1000 秒打印值。但我注意到在 call1() 中变量计时器仍然存在

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.