js基于setTimeout与setInterval实现多线程


Posted in Javascript onJune 17, 2016

本文实例讲述了js基于setTimeout与setInterval实现多线程的方法。分享给大家供大家参考,具体如下:

javascript无法实现线程阻塞(sleep),原因是因为sleep涉及系统调用。js出于安全考虑是不允许系统调用的。

如果一定要实现语句继续执行就只能用while(1)空转的方法消耗CPU,判断到了时间就break。不过这个方法也不是真正sleep。

只执行一次的定时器

<script>
//定时器使用的是异步的方式运行的
function hello(){
  alert("hello");
}
//使用方法名字执行方法
var t1 = window.setTimeout(hello,1000);
var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法
window.clearTimeout(t1);//去掉定时器
</script>

重复执行的定时器

<script>
function hello(){
  alert("hello");
}
//重复执行某个方法
var t1 = window.setInterval(hello,1000);
var t2 = window.setInterval("hello()",3000);
//去掉定时器的方法
window.clearInterval(t1);
</script>

问题:

如果在一个页面中有两个方法都是在页面加载完成之后执行的,但是实际运行的结果不能按照自己想象的先后顺序执行,该如何解决呢?

解决方法:

可以在onload方法中添加一个定时器,设置一个定时器,“延迟”一段时间之后再运行,这样就可以人为区分页面加载运行方法的先后顺序了。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 隐藏与显示tr标签示例代码
Jun 06 Javascript
JavaScript中的this使用详解
Jul 27 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
Apr 25 Javascript
Angular2中如何使用ngx-translate进行国际化
May 21 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 Javascript
vue+moment实现倒计时效果
Aug 26 Javascript
Vue两种组件类型:递归组件和动态组件的用法
Aug 06 Javascript
vue的$http的get请求要加上params操作
Nov 12 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 #Javascript
jQuery animate easing使用方法图文详解
Jun 17 #Javascript
JS常用字符串方法(推荐)
Jan 15 #Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 #Javascript
JS模拟的Map类实现方法
Jun 17 #Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 #Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 #Javascript
You might like
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
python查看模块安装位置的方法
2018/10/16 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
明信片寄语大全
2014/04/08 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
法制教育主题班会
2015/08/13 职场文书
Golang表示枚举类型的详细讲解
2021/09/04 Golang