大家好,今天小编关注到一个比较有意思的话题,就是关于javascript线程等待的问题,于是小编就整理了3个相关介绍JavaScript线程等待的解答,让我们一起看看吧。
- 在JavaScript中,是否存在“同步非阻塞”和“异步阻塞”这两种情况?
- JavaScript既是单线程又是异步的,这二者是否冲突,以及有什么区别?
- js什么情况下需要开启多线程?
首先,JS是单线程的,没有多线程自然没有同步异步之说。只要是执行JS代码,必然是同步的。JS所谓的同步和异步,和C及Java里的线程异步不是同一个概念,只用在JS执行线程使用AJAX和网络资源处理线程之间切换时是否等待。如果***用同步请求,则在请求完成之前,JS线程会一直挂起等待,必然是阻塞的。使用异步请求,则JS线程会在发起网络请求后继续向下执行。这个阻塞也是在实现引擎的C和C++层面来说的,而非针对JS本身。用户从JS层面真正能够直观体会到"阻塞",是在alert等弹出框显示时。浏览器内核本身并没有阻塞alert,而是在上层实现上去对它进行的阻塞。所以,我的答案是:negative
JAVAScript既是单线程又是异步的,这二者是否冲突,以及有什么区别?
J***aScript的这两个特点并不冲突,正是因为它的单线程特点促进了异步的发展
div>
J***aScript仅仅是语法层面的单线程语言,它的执行引擎是多线程的
我们常说的J***aScript是单线程的,是它并没有提供多线程相关的类库,而浏览器的js执行引擎也为只每一个页面提供一个线程来执行这个页面中的J***aScript程序。由于同一个页面中的程序是单线程的,同步执行与服务器间的请求或其他耗时的程序会导致程序等待,造成页面无法响应其他操作的情况,J***aScript使用异步编程来解决这个问题。
浏览器端的异步特性,都是使用多线程来实现的
比如AJAX请求,浏览器会使用另外的线程来处理AJAX请求,在结束后再将回调函数加入到当前页面的js线程中等待执行。再比如浏览器的事件响应,浏览器也有专门的线程来监听,当监听到***后,再将响应函数加入到当前页面的js线程中等待执行。
js什么情况下需要开启多线程?
js在以下情况下需要开启多线程:
1、 程序包含复杂的计算任务时
主要是利用多线程获取更多的CPU时间(***)。
2、 处理速度较慢的***设备
比如:打印时。再比如网络程序,涉及数据包的收发,时间因素不定。使用独立的线程处理这些任务,可使程序无需专门等待结果。
3、 程序设计自身的需要
WINDOWS系统是基于消息循环的抢占式多任务系统,为使消息循环系统不至于阻塞,程序需要多个线程的来共同完成某些任务。
到此,以上就是小编对于j***ascript线程等待的问题就介绍到这了,希望介绍关于j***ascript线程等待的3点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.fengdengtech.com/post/53281.html
相关推荐
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript加载中的问题,于是小编就整理了3个相关介绍javascript加载中的解答,让我们一起看看吧。js加载异常或未找到是什么意思?JS判断页面是否加载完成?jquery怎么...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript实现异步的问题,于是小编就整理了3个相关介绍javascript实现异步的解答,让我们一起看看吧。js常用的异步处理方法?JavaScript如何异步的传递java对象...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript异步订阅的问题,于是小编就整理了3个相关介绍javascript异步订阅的解答,让我们一起看看吧。Spring如何优雅地发送异步发送通知?请问WebSocket的实时通...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript基础心得的问题,于是小编就整理了3个相关介绍javascript基础心得的解答,让我们一起看看吧。在JavaScript中,是否存在“同步非阻塞”和“异步阻塞”这两种情...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript异步语法的问题,于是小编就整理了3个相关介绍javascript异步语法的解答,让我们一起看看吧。js为什么网络请求是异步?thinkjs异步的结果怎么输出?什么是Aj...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript线程安全的问题,于是小编就整理了4个相关介绍javascript线程安全的解答,让我们一起看看吧。redis是线程安全吗?Redis连接池获取连接是线程安全的吗?has...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于JavaScript异步循环的问题,于是小编就整理了4个相关介绍JavaScript异步循环的解答,让我们一起看看吧。js时间循环是什么?js常用的异步处理方法?JavaScript如何异...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于JavaScript都是异步的问题,于是小编就整理了3个相关介绍JavaScript都是异步的解答,让我们一起看看吧。js三种异步的区别?js常用的异步处理方法?JavaScript如何...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript阻塞实现的问题,于是小编就整理了2个相关介绍javascript阻塞实现的解答,让我们一起看看吧。JS单线程,如何避免阻塞?是js的加载阻塞了页面的渲染还是js的执行阻...
-
大家好,今天小编关注到一个比较有意思的话题,就是关于javascript函数异步的问题,于是小编就整理了4个相关介绍javascript函数异步的解答,让我们一起看看吧。js常用的异步处理方法?JavaScript既是单线程又是异步的,这二...