一个简单的代码,讲明白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
相关文章推荐
- blockchain 区块链200行代码:在JavaScript实现的一个简单的例子
- 发布一个史上最简单代码最少Javascript Timer,解决一切定时执行的问题
- 一个简单的java线程代码
- 一个简单的JavaScript数据缓存系统实现代码
- java 使用线程做的一个简单的ATM存取款实例代码
- JavaScript 代码性能优化总结 && 一个最简单的web服务器
- 发布一个史上最简单代码最少Javascript Timer,解决一切定时执行的问题
- 简单的javascript代码给页面一个奇迹
- 一个简单的javascript图片放大效果代码
- 一个简单的javascript图片放大效果代码
- 示例 - 17行代码实现一个简单高效的多线程蜘蛛程序
- 一个简单的JavaScript数据缓存系统实现代码
- blockchain 区块链200行代码:在JavaScript实现的一个简单的例子
- ?一个XML对象在javascript中调用的代码错误
- 将进程变成一个线程执行代码
- 一个VC写的完整、简单的Sniffer代码
- 一个简单的XML解析器代码
- 一个简单的猜谜游戏的代码(高级用户界面制作)
- 一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码
- 一个简单的聊天代码