线程同步有什么用_异步和同步的区别在哪

线程同步有什么用_异步和同步的区别在哪异步、同步以及异步的各种解决方法 最全解!1. 异步和同步JavaScript是单线程语言,所谓”单线程”,就是指一次只能完成一件任务。遇到等待(网络请求、定时任务)

异步、同步以及异步的各种解决方法 最全解!   1. 异步和同步   JavaScript是单线程语言,所谓”单线程”,就是指一次只能完成一件任务。遇到等待(网络请求、定时任务)会卡住,所以需要异步模式。   同步和异步的区别:   同步模式:后一个任务等待前一个任务结束,然后再执行,如果遇到等待会阻塞代码的执行;   异步模式: 后一个任务不等待前一个任务结束就可以执行,不会阻塞代码的执行。异步通过callback形式调用。   具体来说,异步运行机制如下:   (1)所有同步任务都在主线程上排队依次执行,形成一个执行栈。   (2)主线程之外,还存在一个”任务队列”(task queue)。异步任务进入Event Table并注册函数,异步任务有了运行结果,就在“任务队列”之中放置一个事件。   (3)一旦主线程中的所有同步任务执行完毕,系统就会读取”任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入主线程执行。   (4)主线程内的任务执行完毕为空,就会从”任务队列”中读取事件,这个过程是循环不断的,形成event loop(事件循环)   异步方案经历了如下的四个进化阶段:   回调函数 —> Promise —> Generator —> async/await。   2.回调函数时期   异步的实现方式:事件监听,发布订阅,回调函数   异步可以同时进行多个操作,不会阻塞代码的执行,但同时他也有缺点,它使代码变得很复杂,比如一个页面进行多个ajax请求时:   这样的代码会变得难以调试,并且极易出错,这就是callback hell(回调地狱)。   ES6的新语法Promise对象解决了callback hell问题。   3. Promise   Promise 对象用于表示一个异步操作的最终结果(完成或失败),以及其返回的值。   4. Generator   5. Async await   async/await的出现是将异步函数变成同步写法,使复杂的代码更可读。   async关键字声明一个函数为异步函数:   await关键字将异步方法变成同步方法,阻塞了代码的执行,它是等待异步方法执行完成,然后异步方法里的数据,但是必须用在异步方法里。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/32107.html

(0)
上一篇 2024年 9月 11日
下一篇 2024年 9月 11日

相关推荐

关注微信