您的位置:首页 > Web前端 > JavaScript

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

2017-02-22 23:10 204 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: