浏览器中的消息队列和事件循环

本文探讨了浏览器中的消息队列和事件循环机制,详细解释了单线程如何处理任务,如何通过事件循环在线程中添加新任务,以及如何处理其他线程和进程发送的任务。此外,还介绍了消息队列中的任务类型,如输入、微任务、文件读写等,并分析了单线程模型的优缺点,提出了解决长时间运行任务和高优先级任务的策略,如微任务的使用。
摘要由CSDN通过智能技术生成

浏览器中的消息队列和事件循环

  • 渲染进程-主线程(dom/style/layout/JavaScript input/task)
    系统统筹以上任务就是消息队列和时间循环系统

单线程处理任务

顺序执行


void MainThread(){
     int num1 = 1+2; //任务1
     int num2 = 20/5; //任务2
     int num3 = 7*8; //任务3
     print("最终计算的值为:%d,%d,%d",num1,num2,num3); //任务4
  }

img

在线程处理过程中添加新任务(事件循环)

加入 for 循环,检测是否有新任务,加入事件系统


//GetInput
//等待用户从键盘输入一个数字,并返回该输入的数字 ,等待过程中线程暂停
int GetInput(){
    int input_number = 0;
    cout<<"请输入一个数:";
    cin>>input_number;
    return input_number;
}

//主线程(Main Thread)
void MainThread(){
     for(;;){ // 循环机制,一直循环
          int firs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值