JavaScript螺纹的问题和答案
要求:
JavaScript是单线程的,有任务队列。比方使用setTimeou(func,secs)来在secs毫秒后向任务队列加入func。可是,setTimeout后面跟一个死循环,那么死循环导致任务被堵塞,也就是说func不能运行。
我想请教一下:死循环在运行的时候,secs毫秒过去的时候,func是否被加入到任务队列中?假设加入了,但JS是单线程的,不是在这个线程中加入的,那在哪里被加入的?求大神解答下,找乐非常多东西,都是和JavaScript高级程序设计上的说法一样.
答:
原因是 JS 是单线程的。可是浏览器是多线程的。甚至是多进程的。
所以。同一个标签页,仅仅有一个解释器。可能iframe有多个吧。。。 加入维护是其它线程干的事,运行是单线程解释器干的事。
就如同Java,有反射机制吧,window 是一个 host宿主对象。也就是他自身使用 C语言实现的。不在 JS的解释器线程控制之内,仅仅是进行交互。所以。。。 你明确了吧,逻辑上JS是单线程,但实际上有非常多个其它的线程在辅助这个解释器。
实现细节上仅仅要能保证单线程的逻辑完整性即可了
关于句柄 handler的一些理解:
句柄。 handler,事实上这个词翻译的挺形象的,尽管不太好理解。
你能够理解成电视机的遥控器,遥控器在手。就相当于获取了电视机这个对象,想让电视机干什么。那就操作这个“电视机对象” 即可。
持久化,一般来说就是指存到数据库;在内存里,就不叫持久化。 重新启动后还光临。那是的持久性。
版权声明:本文博主原创文章,博客,未经同意不得转载。
JavaScript螺纹的问题和答案的更多相关文章
- javascript前端面试题及答案整理
Part1 手写代码 现场手写代码是现在面试中很常见的一类面试题,考察基础的数据结构与算法能力. 1 数组去重的实现 基本数组去重 Array.prototype.unique = function( ...
- 新手理解HTML、CSS、javascript之间的关系
http://www.cnblogs.com/dreamingbaobei/p/5062901.html 工作多年,一直忙忙碌碌的应用各种技术,现在不忙了,问问自己究竟在做什么,究竟会什么竟答不上来, ...
- JavaScript深究系列 [一]
1. JavaScript中 = = = 首先,== equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较. ===,不做类型转换,类型不同 ...
- 20 个值得一试的JavaScript 框架
投递人 itwriter 发布于 2011-09-26 17:46 评论(3) 有1956人阅读 原文链接 [收藏] « » 本文介绍 20 个值得一试的 JavaScript 框架,如果你认为答 ...
- 1.JavaScript面试
1.1. 简要描述 JavaScript 的数据类型? 参考答案: JavaScript 的数据类型可以分为原始类型和对象类型. 原始类型包括 string.number 和 boolean ...
- ASP.net关于C#代码与javaScript函数的相互调用
C#代码与javaScript函数的相互调用 问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在 ...
- C#代码和javascript函数相互调用
C#代码与javaScript函数的相互调用 问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在 ...
- 2014年辛星解读Javascript之DOM之事件及其绑定
我们通过DOM的事件能够对HTML的事件作出反应.就像我们用其它编程语言写GUI一样,那么HTML包含哪些事件呢?以下是几个常见的样例,比方网页已经完毕记载,图像完毕载入,鼠标移动到元素上方.输入文字 ...
- [译]JavaScript需要类吗?
[译]JavaScript需要类吗? 原文:http://www.nczonline.net/blog/2012/10/16/does-javascript-need-classes/ 译者注:在 ...
随机推荐
- PHP PDO select语句结果行数计算
PDO有一个函数PDOStatement::rowCount返回上一个SQL语句影响的行数. rowCount函数对于DELETE, INSERT, 或者UPDATE语句的结果是正确的,但对于sele ...
- ForeignKey.on_delete
当由一个 ForeignKey 引用的对象被删除,默认情况下,Django模拟SQL的 ON DELETE CASCADE 来删除对象的 ForeignKey 关系.这样可以覆盖指定的 on_dele ...
- Oracle 11g透明网关连接Sqlserver 2000
一.环境 公司网站系统使用的是IIS + Oracle 但公司某系统使用的是Sqlserver 2000, 但其数据需要做成报表放到网站上,为简化编程,使用Oracle做透明网关,定期从Sqlserv ...
- [转载]各种在线api地址
J2SE1.7英文api地址: http://download.oracle.com/javase/7/docs/api/J2SE1.6英文api地址: http://download.oracle ...
- Ubuntu系统下在Eclipse中使用真实手机运行调试Android应用
本文是在Ubuntu下已搭建好JRE+Eclipse+AndroidSDK的环境中进行的. 如果从未进行过如下的操作的话,在运行Android应用时,在设备选择器那里你的手机会显示为一大串" ...
- Cocos2d-x 3.0 使用TinyXml 解析XML文件
在cocos2d-x 3.0中Xml解析已经不用自己找库了,已经为我们集成好了. text.xml <!--?xml version ="1.0" encoding =&qu ...
- [置顶] 局部加权回归、最小二乘的概率解释、逻辑斯蒂回归、感知器算法——斯坦福ML公开课笔记3
转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...
- css优先级及权重值
优先级: 外部样式表 内部样式表(位于<head>标签内部 内联样式(在HTML元素内部)优先权最高 内联样式>内部样式=外部样式(看具体引入位置,解析的先后) 权重值: 第一等:内 ...
- iOS中的 SB和XIB的前世今生
今天给大家介绍一下Apple开发中三种几种常用的应用程序编写方式:纯代码创建.使用storyboard/XIB.我们都知道,纯代码编写模式适合大型项目大规模使用,利于版本管理.追踪改动以及代码合并,代 ...
- .net平台是什么?.net平台的组成,.net平台的好处
1..net(dotnet)平台是什么? .net平台是微软公司设计的一个用于开发各种应用的"框架"和程序的运行环境. 2..net平台的组成: a..net Framework( ...