赞
踩
Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。那么什么是同步或者异步呢?让我们来普及一下js基础知识吧!
同步:一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去。
异步:进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
进程:狭义上,就是正在运行的程序的实例。广义上,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
线程:线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位。指运行中的程序的调度单位。
单线程:单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。单线程就是进程里只有一个线程。
多线程:在单个程序中同时运行多个线程完成不同的工作,称为多线程。
浏览器是多线程的,而js是通过ajax让浏览器开了一个线程的请求,事件回调的时候是放入Event loop单线程事件队列等候处理。当浏览器空闲的时候出队列任务被处理,JavaScript引擎始终是单线程运行回调函数、单线程处理它的任务队列。
js 是通过同步的方式来模拟实现异步的,js实现异步的方式为:
1.回调函数 2.事件监听 3.Promises const promise = new Promise(function(resolve, reject) { // ... some code if (/* 异步操作成功 */){ resolve(value); } else { reject(error); } }); promise.then(function(value) { // success }, function(error) { // failure }); const promise = new Promise(function(resolve, reject) { reject(new Error('test')); }); promise.catch(function(error) { console.log(error); }); javascript是一门单线程语言 Event Loop是javascript的执行机制
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。