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中继承的三种方式
Oct 16 Javascript
javascript常用对话框小集
Sep 13 Javascript
js确认删除对话框效果的示例代码
Feb 20 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
Oct 16 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
基于vue展开收起动画的示例代码
Jul 05 Javascript
在react中使用vuex的示例代码
Jul 30 Javascript
微信小程序实现锚点功能
Nov 20 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python装饰器使用方法实例
2013/11/21 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
python实现画圆功能
2018/01/25 Python
如何手工释放资源
2013/12/15 面试题
配置管理计划的主要内容有哪些
2014/06/20 面试题
大学应届生求职简历的自我评价
2013/10/08 职场文书
学校安全教育制度
2014/01/31 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
经典演讲稿开场白
2014/08/25 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
环境建议书
2015/02/04 职场文书
Golang ort 中的sortInts 方法
2022/04/24 Golang
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js