如何用HBuilder实现多线程啊?最好有代码
二号
- 发布:2015-08-27 11:21
- 更新:2015-11-11 09:38
- 阅读:2508
6 个回复
DC10ud很棒
如果懂java,ios的多线程,直接试试用Native.js的方式自己实现吧。Native.js参考文档:【Android实现】http://www.html5plus.org/doc/zh_cn/android.html 【IOS实现】http://www.html5plus.org/doc/zh_cn/ios.html 【入门】http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/88 【示例】http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/114
chender - 与人为善
使用nativejs肯定不行,首先你如果要使用多线程,那你肯定是想要多线程处理业务逻辑,那就意味着处理业务逻辑的代码你也得通过nativeJS代码实现,然而js本身是单线程了,所以无论如何都是实现不了多线程的;
不过我很好奇,什么样的业务场景需要用到多线程,多线程本身就是一个抽象的概念,操作系统是通过分时来完成的,同样,在单线程的js里面应该也是可以实现多线程的效果的;
二号 (作者)
开个子线程也不行吗?
2015-08-27 14:07
二号 (作者)
var Thread = plus.android.importClass("java.lang.Thread")像这样也不行啊?
2015-08-27 14:12
chender
这样等同于你在java里启很多线程去调用一个加了synchronized关键字的方法,其实还是单线程
2015-08-27 14:40
二号 (作者)
那为什么只调用main的线程?其他的就不调用
2015-08-27 15:04
chender
回复 二号:没太明白你是什么意思,反正js永远是单线程执行的,如果你想多线程处理某些业务逻辑,那实现这个逻辑的代码必须是原生代码,不能用nativeJs去实现
2015-08-27 15:42
Element
该补补了 https://developer.mozilla.org/zh-CN/docs/Web/API/Worker
2017-03-01 08:07
DC10ud很棒
不知道能不能实现,暂时没遇到这种需求,只是一个初步的思路,没有去验证。理论上讲,nativejs可以调用系统原生接口,所以应该也可以调用Thread类的吧。不过,javascript里用回调函数就能实现类似多线程的非阻塞异步并行执行方式的吧,这个具体要根据业务需求来分析,所以也不是非得考虑nativejs的方式。此时,又要考虑不同异步方法之间的同步问题,坑很多啊。
二号 (作者)
那线程监听的话用什么做?原生的还是Native.js?
2015-08-27 14:13
DC10ud很棒
你要监听什么?一个变量?还是javascript事件,抑或是系统事件?这个要根据具体业务来分析的。有的可以直接用javascript来搞定的,不一定非得用到线程概念,有的像系统事件的这种,估计应该用broadcast receiver这种来监听的,这种就要用到原生代码了,但是逻辑的编写可以用Native.js的这种方式。
2015-08-27 15:05
zjfree
使用HTML5 worker 多线程操作。但又很多限制。
wanZ
http://ask.dcloud.net.cn/question/11887?notification_id-59092__rf-false
看这里,可以用runnable接口,但是有使用缺陷。
chender - 与人为善
反正就是js没法实现多线程,除非你的业务逻辑也是用原生代码写的