【发布时间】:2016-02-25 18:12:25
【问题描述】:
我是一名开发人员,难以区分术语 Call Stack 和 Task Queue。有谁能帮我解释一下区别吗?
提前致谢。
【问题讨论】:
-
这是个好问题
标签: javascript jquery callstack task-queue
我是一名开发人员,难以区分术语 Call Stack 和 Task Queue。有谁能帮我解释一下区别吗?
提前致谢。
【问题讨论】:
标签: javascript jquery callstack task-queue
作业队列(有时是批处理队列)是由作业调度软件维护的数据结构,其中包含要运行的作业。
https://en.wikipedia.org/wiki/Job_queue
调用堆栈是一种堆栈数据结构,用于存储有关计算机程序的活动子例程的信息。这种堆栈也称为执行堆栈、控制堆栈、运行时堆栈或机器堆栈,通常简称为“堆栈”。
https://en.wikipedia.org/wiki/Call_stack
所以简而言之,作业队列是要做的事情的队列(通常是持久存储的),调用堆栈是例程的堆栈。
作业会分配有变量,调用堆栈将是抽象实现。
因此,作业可以从调用堆栈中“调用”一个方法。
编辑: 可能有一份工作清单;
每个作业都会多次运行一个调用堆栈;
第一份工作
第二份工作:
【讨论】:
例如。
在 JavaScript 中有一个叫做超时的函数。当您在“调用堆栈”上调用函数超时时,它将在“作业队列”中注册。它不会立即触发,而是会在到达时间后触发。
timeout(function(){
console.log("one");
}, 100);
console.log("two");
在调用堆栈中,console.log("one")首先被触发,但在作业队列中,结果会在two之后显示。
【讨论】: