我将 Duktape 嵌入到运行 FreeRTOS 的 esp32 中。
而且我坚持实现非阻塞事件循环。
据我了解,在异步收益方面实现事件循环非常简单。但它不是很好,因为它总是会加载 CPU,即使除了等待事件发生之外没有真正发生任何事情。我正在考虑将另一个 Duktape 线程添加到运行我的应用程序的 Duktape 堆中。并使这个单独的 Duktape 线程由另一个使用互斥锁作为同步的 RTOS 任务运行。
但也有人写道,这可能会导致垃圾收集问题。
而且据我了解,我需要在绑定到堆内 js 函数的每个本机 C 函数中使用互斥锁,这有点不方便。
也许我错过了一些更简单的方法来创建这样一个事件循环?
我需要事件循环:为 GUI 执行回调并运行计时器。但是当我无事可做时,我需要它睡觉。