JavaScript中的EventLoop

JavaScript是单线程的非阻塞脚本语言,执行时只有一个主线程处理任务。遇到异步任务,主线程会挂起,待结果返回再执行回调。单线程是为避免多线程同时操作DOM产生问题,保证代码正常执行。

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

前言

js从诞生以来就是一门单线程的非阻塞的脚本语言,意味着js代码在执行的任何时候,都只有一个主线程来处理所有的任务,而非阻塞则是当代码需要进行一项异步任务(无法立刻返回结果,需要花一定时间才能返回的任务)的时候,主线程会挂起(pending)这个任务,然后在异步任务返回结果的时候再根据一定的规则去执行相应的回调。

单线程是必要的,因为在浏览器中,需要进行各种各样的dom操作,如果js是多线程的,那么当两个线城同时对dom进行一项操作的时候,无法正常处理。因此为了保证类似事件不发生,js选择只有一个主线程来执行代码。
https://zhuanlan.zhihu.com/p/33058983

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值