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 相关文章推荐
javascript 原型模式实现OOP的再研究
Apr 09 Javascript
html超链接打开窗口大小的方法
Mar 05 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 Javascript
页面间固定参数,通过cookie传值的实现方法
May 31 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
微信小程序自定义组件
Aug 16 Javascript
koa2实现登录注册功能的示例代码
Dec 03 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
JS实现简易日历效果
Jan 25 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php自动加载的两种实现方法
2010/06/21 PHP
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
Python中使用asyncio 封装文件读写
2016/09/11 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
对Python3 序列解包详解
2019/02/16 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
Python如何将装饰器定义为类
2020/07/30 Python
薇姿法国官网:Vichy法国
2021/01/28 全球购物
目标责任书范文
2014/04/14 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
北京故宫的导游词
2015/01/31 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
班主任培训研修日志
2015/11/13 职场文书
校运会班级霸气口号
2015/12/24 职场文书
改造DE1103三步曲
2022/04/07 无线电
Java 多态分析
2022/04/26 Java/Android