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 使用手册(四)
Sep 23 Javascript
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
javascript封装 Cookie 应用接口
Aug 07 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 Javascript
基于jQuery实现表格的排序
Dec 02 Javascript
Angular ng-repeat指令实例以及扩展部分
Dec 26 Javascript
使用vuex的state状态对象的5种方式
Apr 19 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 Javascript
layui自定义插件citySelect实现省市区三级联动选择
Jul 26 Javascript
原生JavaScript创建不可变对象的方法简单示例
May 07 Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 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中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
js资料toString 方法
2007/03/13 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
Python 基础教程之str和repr的详解
2017/08/20 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
python实现猜拳小游戏
2020/04/05 Python
python列表推导式入门学习解析
2019/12/02 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
init进程的作用
2012/04/12 面试题
小溪流的歌教学反思
2014/02/13 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
经典婚礼主持词
2014/03/13 职场文书
安全生产计划书
2014/05/04 职场文书
前台接待岗位职责
2015/02/03 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
超市采购员岗位职责
2015/04/07 职场文书
工作经历证明范本
2015/06/15 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers