一个简单的代码,讲明白javascript的线程

来源:互联网 发布:手机做淘宝客是骗? 编辑:程序博客网 时间:2024/06/05 01:01

var num = 10, a = 1;while(num-- > 0){   a++;   console.log('同步', a);   setTimeout(function(){     a--;     console.log('异步', a);   }, 0);}


打印结果如下:

同步 2
VM904:4 同步 3
VM904:4 同步 4
VM904:4 同步 5
VM904:4 同步 6
VM904:4 同步 7
VM904:4 同步 8
VM904:4 同步 9
VM904:4 同步 10
VM904:4 同步 11


VM904:7 异步 10
VM904:7 异步 9
VM904:7 异步 8
VM904:7 异步 7
VM904:7 异步 6
VM904:7 异步 5
VM904:7 异步 4
VM904:7 异步 3
VM904:7 异步 2
VM904:7 异步 1


定时器里面的输出会延迟于定时器外的执行,因为setTimeout开启了一个子线程,主线程空闲了才会拉他的任务出来跑


搞不懂进程和线程

应用程序安装功能的不同划分为不同进程,进程之间是独立的,而通常在一个进程中可以包含若干个线程,线程之间是可以通讯的


相关博文:http://www.ruanyifeng.com/blog/2013/10/event_loop.html


0 0
原创粉丝点击