Day17-JS进阶-线程机制和事件机制
1、进程与线程
程序运行起来之后,就会产生出对应的进程了
(并且并不是一个程序只能搞一个进程,一个程序是可以触发多个进程的)--这样的程序称之为多进程的程序/应用
并且一个进程还可以分为多个线程
如果这个程序对应的进程有多个线程的话,那么这个程序就是一个多线程的程序了
如果这个进程只有一个线程的话,那么这个程序就是单线程的程序
进程之间的关系是相互独立的
线程池就是用包保存,然后复用线程的
2、浏览器内核
js引擎的话,其实在浏览器内部就有的了
内存里面其实是一个DOM对象树来的
3、定时器引发的思考
也就是可能设置的是200 可能是 203 201 202之后才进行的
然后在好卖你再加一个 for遍历的话,时间可能就变成是500+的了,就是不准的,也就是不能按时来执行的了
alert语句会把程序暂停的,那alert之后,setimeout是立即执行,还是过一会才执行的呢?
但是它是要在alert之后,不会立即把111和222打印出来,还要等一定的时间才行的
也就是alert不仅把主线程暂停了,还把settimeout计时也暂停了
假如代码变成这样的话
alert111之后,过一秒而不是过两秒之后,又会alert 2222 了
先执行初始化代码,再执行回调代码,计时把settimeout的时间设为0的话,也是alert先执行,因为alert在js引擎里面就是初始化代码,而settimeout不论有没有设置时间都是回调代码的了
4、事件循环模型