JavaScript单线程模型
单线程模型是指JavaScript只在一个线程上运行(该线程称为主线程),即JavaScript只能同时执行一个线程,其它线程在后面排队等待
JavaScript采用单线程模型的目的和优缺点
目的:为了简单
优点:不会发生堵塞,不会发生抢占资源的情况,无需加入锁机制
缺点:等待时间长,当有一个任务耗时长,后面的任务都必须等待
JavaScript“事件循环”
当CPU因为IO操作等而等待时间长,CPU会把当前等待中的任务挂起,先运行排在后面的任务,当IO操作等返回了结果,再继续执行挂起的任务
JavaScript同步任务/异步任务
同步任务:没有被JavaScript引擎挂起,在主线程上排队执行的任务。只有前一个任务完成,才能执行后一个任务
异步任务:被JavaScript引擎放一边,不进入主线程,而进入任务队列的任务(异步任务通过回调函数进入主线程)