您的位置:首页 > 教程笔记 > 前端笔记

js使用yield模拟多线程的方法简单介绍

2023-12-04 13:50:32 前端笔记 198

在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

相关推荐

  • 兼容低版本IE浏览器的Object.create()方法

    兼容低版本IE浏览器的Object.create()方法

    关于Objct.crt()方法的基本用法可以参阅Objct.crt()一章节。但是此方法对于低版本的浏览器无效,比如I9以下浏览器。下面就介绍一下代码实例,它实现了兼容效果。代码如下

    前端笔记 2023-12-04 13:48:41 123
  • 实现跨域iframe接口方法调用 简单介绍

    实现跨域iframe接口方法调用 简单介绍

    页面.html域名为,嵌入页面/b.html.b.html要调用.html中的js函数,由于两个页面不在一个域中,会提示没权限。下面就介绍一下如何如何解决此问题,需要的朋友可以做一下参考。一.cr

    前端笔记 2023-12-04 13:48:33 107
  • call()和apply()方法使用代码实例

    call()和apply()方法使用代码实例

    本章节分享几段关于cll()和ly()方法使用的代码实例。需要的朋友可以做一下参考,关于两个方法的基本用法这里不做介绍,可以参阅相关阅读。(1).cll()方法可以参阅js cll()一章

    前端笔记 2023-12-04 13:47:42 148
  • jQuery源码分析之tokenize方法的Expr.preFilter

    jQuery源码分析之tokenize方法的Expr.preFilter

    关于tokniz()方法的分析可以参阅jQury源码分析之tokniz()方法一章节。下面再分析一下此方法的xr.rFiltr,需要的朋友可以做一下参考。代码实例如下:xr.

    前端笔记 2023-12-04 13:41:24 87
  • jQuery源码分析之select()方法

    jQuery源码分析之select()方法

    本章节对jQury源码中的slct()实现进行一下分析。分析文本在源码中,以注释的形式存在,感兴趣的朋友可以做一下参考。代码如下:/* * slct方法是Sizzl选择器包的核心方法之一,

    前端笔记 2023-12-04 13:41:22 25