💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 同步和异步 * 单线程和多线程 * 操作系统是单线程还是多线程 c++ * * JS--单线程:同一时间,只能执行一个任务 * * 同步编程和异步编程: * 同步(sync)--我们JS里面的任务会按照顺序依次执行,当前的任务没有完成,后面的任务是不会执行的。(同一个时间只能做一件事情)-----我们的同步任务都是放在主任务队列。 * * 异步(async)--我们的JS当遇到异步任务的时候,不会停止执行任务,会先把异步编程放在等待任务队列里面。程序会继续往下执行。先把主任务队列里面的程序执行完之后,并且也到了等待时间了,继续执行异步任务("机器人去等待任务队列里面找异步任务,把异步任务放到主任务队列里面去执行")。 * * 同步任务是放在主任务队列里面 * 异步任务是放在等待任务队列里面的 * * JS里面哪些是同步编程哪些是异步编程呢? * JS里面的异步编程如下: * 第一、定时器都是异步编程 * 第二、所有的点击事件都是异步编程 * 第三、Ajax中一般我们也都是异步编程 * * 其余都是同步编程。 <br> * 同步和异步编程的核心原理(主任务队列和等待任务队列) * 主任务队列:同步编程,先执行 * 等待任务队列:异步编程,等待时间到就执行 **举例** ```javascript setTimeout(function () { console.log(1); },50); setTimeout(function () { console.log(2); },10); setTimeout(function () { console.log(3); },30); for(var i = 0; i < 100000000; i++){ //大约需要200到300毫秒 } console.log(6); //结果顺序为6231 ```