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
一线大厂高级前端编写,前端初中阶面试题,帮助初学者应聘,需要联系微信:javadudu