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 相关文章推荐
JavaScript 异步调用框架 (Part 2 - 用例设计)
Aug 03 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
jQuery选择器全面总结
Jan 06 Javascript
jquery等待效果示例
May 01 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
利用angularjs1.4制作的简易滑动门效果
Feb 28 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
Vue源码分析之Vue实例初始化详解
Aug 25 Javascript
vue点击当前路由高亮小案例
Sep 26 Javascript
JavaScript forEach中return失效问题解决方案
Jun 01 Javascript
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文件的实现方法
2007/03/19 PHP
php MySQL与分页效率
2008/06/04 PHP
php 移除数组重复元素的一点说明
2008/11/27 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
python list语法学习(带例子)
2013/11/01 Python
python中对list去重的多种方法
2014/09/18 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
五一促销活动总结
2014/07/01 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书