二号
二号
  • 发布:2015-08-27 11:21
  • 更新:2015-11-11 09:38
  • 阅读:2419

多线程问题

分类:Native.js

如何用HBuilder实现多线程啊?最好有代码

2015-08-27 11:21 负责人:无 分享
已邀请:
DC10ud很棒

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

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很棒

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

zjfree

使用HTML5 worker 多线程操作。但又很多限制。

wanZ

wanZ

http://ask.dcloud.net.cn/question/11887?notification_id-59092__rf-false
看这里,可以用runnable接口,但是有使用缺陷。

chender

chender - 与人为善

反正就是js没法实现多线程,除非你的业务逻辑也是用原生代码写的

该问题目前已经被锁定, 无法添加新回复