我想在js中开多线程,在C++开了一个线程,然后在子线程成回调一下js就报错。。有没有好的方法实现多线程?
因为Cocos2d-x和JSB中的JS脚本是紧密耦合的,他们的运行时必须在同一个线程下,否则一定会出现问题,调用顺序,逻辑,回调等等都会乱掉,但是如果你需要另一个SpiderMonkey runtime线程去处理一些与Cocos2d-x无关的逻辑,是可以做到的,你需要在另一个线程中新建JS Runtime,然后用新的Runtime中去运行脚本,该线程和Cocos2d-x主线程之间不应该有同步的逻辑依赖关系。
具体文档请参考SpiderMonkey官方关于Runtime的介绍:
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/JSAPI_User_Guide
https://blog.mozilla.org/luke/2012/01/24/jsruntime-is-now-officially-single-threaded/