【发布时间】:2010-10-10 16:34:22
【问题描述】:
异步调用是否总是创建一个新线程?两者有什么区别?
异步调用是否总是创建或使用新线程?
在计算机编程中,异步事件是独立于主程序流发生的事件。异步动作是在非阻塞方案中执行的动作,允许主程序流继续处理。
我知道异步调用可以在单线程上完成?这怎么可能?
【问题讨论】:
-
JavaScript 没有线程,但它有异步方法调用。
-
任何一个进程管理多个子进程的系统,控制进程可以提供子进程的异步操作。在 JavaScript 的情况下,浏览器提供计算流。当某个函数进行异步调用时,浏览器可以存储该函数的上下文。现在,同一个浏览器线程可以更改上下文以恢复另一个函数的执行。而在传统的多线程程序中,一个线程执行一个功能块以允许另一个线程运行不同的功能。每个线程同步执行自己的功能。
标签: multithreading language-agnostic asynchronous