zoukankan      html  css  js  c++  java
  • 关于多端开发中遇到的一点线程问题

     在开发中我们会遇到很多不可思议的问题!可能前端对于线程理解的不是很深入,我先给大家讲一下什么是线程。

     线程是进程内执行代码基本单位,那么进程是什么呢?指程序被OS调入内存,分配执行空间,随时供CPU调度执行,也就是我们电脑所开启的很多进程,这样是不是更清楚了呢?(这里就不深入讲了,以后有机会给大家讲解一下线程与进程的关系,其实我们前端webworker也是html5,新加线程的一个方法。可以了解一下)

     最近我们开发一个签到打卡功能,我们是基于一个底层框架,安卓,ios、前端和后端联调(下面称ios和安卓为客户端)都基于这个框架开发,流程是这样的,如果用户点击打卡我要调起客户端插件,获取地理定位信息,然后我拿到这个地理位置信息给后台对比是不是在打卡范围内,如果在范围则成功反之不成功。

      流程缕清了吧?写起来特别好写,请看下面代码片段:(其中我们还有判断是不是多个班次跳转页面的流程,这里就不多说了,我们只说这个遇到的问题)

     

        上面代码我红框圈起来的地方就是我调用客户端插件的方法,下面蓝框我做了一个延时,大家是不是觉得很奇怪?我为什么要做延时呢?起初我没有加这个延时,直接调用方法,方法就不生效,甚至走都没有走进去!!,我查了很久,就是不知道怎么回事,因为这也不存在赋值传参的问题啊,就算有赋值问题也应该先这个方法在报错啊?然后就加了一个延时,结果好使了,之后就问了我们技术总监,技术总监说,可能是调用了客户端插件之后,底层框架新开了一个线程,我的方法kq_qdbtns在主线程,然后用setTimeout回归主线程,从而调用到kq_qdbtns的这个方法。

    如有不足之处请大家指出,谢谢。

      

  • 相关阅读:
    1月6日 作业 穷举
    1.4 作业
    12月31日 作业
    12月29日-练习成果
    12月30日作业-<转>字符集编码
    1.22作业
    集合
    泛型
    CPU接口练习 (仅以此程序证明 某个同学真的有毒!有毒!!!)
    继承知识点总结
  • 原文地址:https://www.cnblogs.com/wenbodeboke/p/9684910.html
Copyright © 2011-2022 走看看