js使用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
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至201542412@QQ.com举报,一经查实,本站将立刻删除。
相关推荐
-
兼容低版本IE浏览器的Object.create()方法
关于Objct.crt()方法的基本用法可以参阅Objct.crt()一章节。但是此方法对于低版本的浏览器无效,比如I9以下浏览器。下面就介绍一下代码实例,它实现了兼容效果。代码如下
-
实现跨域iframe接口方法调用 简单介绍
页面.html域名为,嵌入页面/b.html.b.html要调用.html中的js函数,由于两个页面不在一个域中,会提示没权限。下面就介绍一下如何如何解决此问题,需要的朋友可以做一下参考。一.cr
-
call()和apply()方法使用代码实例
本章节分享几段关于cll()和ly()方法使用的代码实例。需要的朋友可以做一下参考,关于两个方法的基本用法这里不做介绍,可以参阅相关阅读。(1).cll()方法可以参阅js cll()一章
-
jQuery源码分析之tokenize方法的Expr.preFilter
关于tokniz()方法的分析可以参阅jQury源码分析之tokniz()方法一章节。下面再分析一下此方法的xr.rFiltr,需要的朋友可以做一下参考。代码实例如下:xr.
-
jQuery源码分析之select()方法
本章节对jQury源码中的slct()实现进行一下分析。分析文本在源码中,以注释的形式存在,感兴趣的朋友可以做一下参考。代码如下:/* * slct方法是Sizzl选择器包的核心方法之一,