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 相关文章推荐
window.location.href的用法(动态输出跳转)
Aug 09 Javascript
理解js对象继承的N种模式
Jan 25 Javascript
实例讲解JavaScript中instanceof运算符的用法
Jun 08 Javascript
Node.js用readline模块实现输入输出
Dec 16 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
Feb 10 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
vue.js多页面开发环境搭建过程
Apr 24 Javascript
解析原生JS getComputedStyle
May 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
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
第四章 php数学运算
2011/12/30 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
Python中的数学运算操作符使用进阶
2016/06/20 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python自动化生成IOS的图标
2018/11/13 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
struct与class的区别
2014/02/03 面试题
5.1手机促销活动
2014/01/17 职场文书
关于逃课的检讨书
2014/01/23 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
MySQL一些常用高级SQL语句
2021/07/03 MySQL
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers