我正在通过异步编程,并且我知道有一个 EventTable,事件队列和事件循环。
据我了解,每次编译器都会在调用堆栈中看到等待状态,它会在事件表中注册一个条目。每当异步结果到来时,都会删除事件表中的条目并将其放入事件队列。
假设我们正在异步函数中进行http调用。因此,我相信将在事件表中创建一个条目,并且每当从http调用返回响应时,特定代码就会放入EventQueue中以运行。事件循环将负责运行代码。但是我的问题是,在使用who is tracking the response from the api
的情况下,谁会进行http调用和setTimeout() who is running the clock and checking the entires in Event Table
的相似处理?
如果其他进程正在跟踪,则意味着在一台核心计算机上3个进程正在运行
事件循环
实际功能(每当事件循环从事件队列中拉出某些东西时)
cron之类的可以跟踪时间,异步响应等的工作?
上述问题的扩展名为what classifies to be run as async
。
我们可以异步运行a = b + c
吗? (IMO,因为b + c仅需要在计算机上进行计算,所以没有,因此在异步函数中执行a = b + c毫无意义)
如果是 谁来负责计算b + c?
如果不是,函数真正异步的规则是什么