JavaScript使用yield模拟多线程的方法


Posted in Javascript onMarch 19, 2015

本文实例讲述了JavaScript使用yield模拟多线程的方法。分享给大家供大家参考。具体分析如下:

在python和C#中都有yield方法,通过yield可以实现很多多线程才能实现的功能。
对javascript有版本要求:JavaScript 1.7

function Thread( name ) {
  for ( var i = 0; i < 5; i++ ) {
    Print(name+': '+i);
    yield;
  }
}
//// thread management
var threads = [];
// thread creation
threads.push( new Thread('foo') );
threads.push( new Thread('bar') );
// scheduler
while (threads.length) {
  var thread = threads.shift();
  try {
    thread.next();
    threads.push(thread);
  } catch(ex if ex instanceof StopIteration) {}
}

上面代码输入结果如下:

foo: 0
bar: 0
foo: 1
bar: 1
foo: 2
bar: 2
foo: 3
bar: 3
foo: 4
bar: 4

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

Javascript 相关文章推荐
IE event.srcElement和FF event.target 功能比较
Mar 01 Javascript
Jquery焦点图实例代码
Nov 25 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
angularjs实现简单的购物车功能
Sep 21 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
AngularJS动态添加数据并删除的实例
Feb 27 Javascript
微信小程序登录session的使用
Mar 17 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 Javascript
Vue全局事件总线你了解吗
Feb 24 Vue.js
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 #Javascript
JavaScript数组随机排列实现随机洗牌功能
Mar 19 #Javascript
JavaScript生成随机字符串的方法
Mar 19 #Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
Mar 19 #Javascript
JavaScript通过字典进行字符串翻译转换的方法
Mar 19 #Javascript
JavaScript更改原始对象valueOf的方法
Mar 19 #Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 #Javascript
You might like
Php获取金书网的书名的实现代码
2010/06/11 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python实现获取某天是某个月中的第几周
2015/02/11 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
python 绘制正态曲线的示例
2020/09/24 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
机械加工与数控专业自荐书
2014/06/04 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle