[英]To multithread or not to multithread - JavaScript
我目前正在尝试类似于太空入侵者的JavaScript射击游戏。 它现在的编码方式,无论是移动的抛射物还是船只。 任何玩过原版的人都知道这不好。 我记得在我的Java课程中进行多线程处理,并想知道这是否是正确的方法,还是有另一种方法可以做到这一点? 例如:
Thread Move start;
Thread Move run;
Thread Shoot start;
Thread Move run;
Thread Shoot run;
Thread Shoot end;
Thread Move run;
Thread Move end;
您可以在Javascript中使用WebWorkers ,但它们与真正的多线程环境无关,就像在java中一样。 您将不得不采用不同的方法进行游戏开发,使用一种循环技术在同一个线程下更新游戏的逻辑,抱歉。 :(在javascript中为线程添加的支持仍然非常笨拙,而且在我看来几乎是一个噱头,唯一一个有Chrome的人,因为你不一定要复制传递给线程的所有数据。这就是为什么线程在javascript中是hamstrung:
由于WebWorkers具有巨大的潜力,但对我而言,他们的使用受到此时对他们的限制的严重限制。 也许你可以在游戏中找到聪明的用途。
传统上,JavaScript是单线程的,因此使用Java中习惯的线程是不可行的。 JavaScript的一个相对新近的增加是web worker( 这里是spec ),它提供了真正的多线程。 但是, 浏览器之间的支持有些变化,您可以通过工作线程进行限制,并且线程之间的通信很痛苦。
您还可以使用Clumpy.js之类的东西来模拟异步执行。
无论你做什么,重要的是不要阻止主线程。 整个浏览器窗口无响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.