同步
同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。
异步
异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,
只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。
任务队列
是一个先进先出的数据结构,排在前面的事件,优先被主线程读取。
主线程的读取过程基本上是自动的,只要执行栈一清空,"任务队列"上第一位的事件就自动进入主线程。
但是,由于存在后文提到的"定时器"功能,主线程首先要检查一下执行时间,
某些事件只有到了规定的时间,才能返回主线程。