1

    1. 线程(这里说的是:子线程),限定一下平台:Android这种。多线程主要是用于异步任务,主线程负责ui,繁重的活其他人(子线程)做。那就要来看看场景了。
    2. 比如:同时获取多个接口数据,是串联,还是并发后合并结果。串就一个任务完成后,next。并就多个一起时间就是最长的那个。不管是并还是串。他们都理解为任务。
    3. 需要有个大佬(池)来管理和复用线程(为了内存,效率 ==),不做管理有什么不好的地方吗
    4. 创建-销毁;再使用的时候重复创建。效率问题。
    5. 如果你留意过一些牛逼的框架,或者系统的一些工具,你可能回发现一个共同点。
    6. 他们都是搞批量任务的,或者是专门做异步的,任务都用喜欢Exector接口。有一个execute(Runnable run)
    7. 比如okhttp,系统的asycnTask,Glide,==,这些工具都是搞这一行的。
    8. 胡言乱语一堆,不知道是不是你需要的


    1139423796017500160  评论     打赏       断点-含光君
    • java里的三种线程启动方式,不过最常用的是前面两种

      1. new一个Thread,重写里面的run方法,需要开启时直接使用thread对象的start方法即可。
      2. new一个Runnable,重写里面的run方法,然后以Runnable对象new一个Thread,也是使用thread的start启动
      3. 使用FutureTask方法启动,自行百度

      请记住,start()才是开启线程的方法,涉及到了线程的生命周期。而run()只是调用了线程里的方法

      而在Android,如果要启动一个线程,直接new Thread重写里面run方法然后使用对象的start()方法就可以了。如果要启动一个耗时的thread,请尽量使用handler来传递,不要在主线程中启动一个耗时的thread,如绘图的UIthread,还有视图的更新等(如recyclerview的item更新)都需要通过handler post出去执行,主线程不执行耗时操作。

      1338391176117608448  评论     打赏       孤星入命孑然一身
    • Java 中 start 才是进行线程的启动,run 方法应该算是对任务的抽象,并没有启动线程的作用。

      1200698213460467712  评论     打赏       sofiworker
      相关问题
      幻影~ · 提问
      2024-04-13 20:13 7 2
      幻影~ · 找工作
      2024-04-07 10:44 12 2
      幻影~ · 问题
      2024-03-31 17:20 7 2
      TONYGFX · AOSP
      2024-03-28 17:11 4 2