以js单线程的运行模式来理解事件循环

本文解析了JavaScript单线程运行机制,介绍了浏览器JS引擎如何处理同步与异步操作,探讨了事件循环(event loop)的工作原理及其在异步编程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js单线程运行的机制简单来说就是

浏览器的 js引擎主线程运行 所有的同步和异步操作,但并非说 整个网页的访问过程就是单线程死磕的, 另外的组件包括 浏览器提供的一个任务队列(盛放其他事件处理线程结束后的回调处理), 其他事件处理线程(如 ajax onclick 等事件)

### 协程篇
协程在此处的作用仅仅是 取代了 我们注册回调函数链的一个难维护的局面, 而是让协程自己保存自己回调的处理,对于代码维护好维护;
至于 底层的 epoll 及 我们的 event_loop 则承担了一个这样的角色, epoll 原理上来说是 对所有的socket进行一个基于事件驱动的阻塞操作,有事件发生则进行后续的回调处理,
我们的 event_loop 则挂起不 有io延时的操作(我们设置的), 当延时做完之后, send到指定协程进行后续处理!

https://www.cnblogs.com/lyt0207/p/11956682.html
https://www.cnblogs.com/sunidol/p/11301808.html js的几个线程
https://www.cnblogs.com/Qooo/p/13685266.html
https://zhuanlan.zhihu.com/p/31634491
https://blog.csdn.net/zhoulei124/article/details/94319248 py实现
http://www.ruanyifeng.com/blog/2014/10/event-loop.html 阮一峰

主线程从"任务队列"中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为Event Loop(事件循环)。
在这里插入图片描述

redis协程调度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值