浏览器中的消息队列和事件循环
- 渲染进程-主线程(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
}

在线程处理过程中添加新任务(事件循环)
加入 for 循环,检测是否有新任务,加入事件系统
//GetInput
//等待用户从键盘输入一个数字,并返回该输入的数字 ,等待过程中线程暂停
int GetInput(){
int input_number = 0;
cout<<"请输入一个数:";
cin>>input_number;
return input_number;
}
//主线程(Main Thread)
void MainThread(){
for(;;){ // 循环机制,一直循环
int firs

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

被折叠的 条评论
为什么被折叠?



