• android 多线程概述


    android多线程,一直是一个麻烦的事情,要掌握它的本质,我们需要搞清楚一个问题,linux多线程的本质。

    我们这篇文章,来讨论以下的议程:

    了解linux的历程,了解android的异步任务机制,了解android的多步任务。

    说到linux的多线程,我们要比较windows与linux的多线程的模型。

    windows线程———线程与进程多对多模型,线程的调度都在核内。

    操作系统——操作系统在的视线系统,部分linux的线程是一对一,一对多的模式,线程调度在核外。

    这是windows进程,windows进程的模型如下:

      

    通过这张图,我们能够精确的看到在kernel中,windows已经定义了一些进程管理类和线程的模型,在类库的层面,你只需要来打通这个线程进程的管道,儿在用户层我们只需要尽情的使用线程池的线程。

    对于linux的线程的知识,我们知道的linux的设计的王道,就是一个简略既是美的原则,利纳科斯没有考虑多线程的。他的进程,线程的示意图如下:

     

    我们可以看到这个linux没有所谓的线0程管理,只有一个轻量级的线程管理,所谓轻量级的线程的管理,只不过是为减少进程的间切花,实现线程中资源的共享。linux的进程只能够在类库的层面来实现了,因此linux的进程与线程的定义是一对一的作用。

    总而言之言而总之,linux的进程是用户态实现的,windows的进程是内核态的实现的。

    对于linux的进程与windows的进程,我们能够通过一个手中模行来实现,windows就好比,动手指头是神经系统(内核)控制的,高效,资源开销少,linux动手指头是外人(用户)控制的,低效,资源少。

    有了这个分析,预知android的多线程的知识,请听下回分解。

    好好学习,天天向上。

  • 相关阅读:
    .net core 3.1 使用Redis缓存
    JavaSE 高级 第11节 缓冲输入输出字节流
    JavaSE 高级 第10节 字节数组输出流ByteArrayOutputStream
    JavaSE 高级 第09节 字节数组输入流ByteArrayInputStream
    JavaSE 高级 第08节 文件输出流FileOutputStream
    JavaSE 高级 第07节 文件输入流FileInputStream
    JavaSE 高级 第06节 初识I、O流
    JavaSE 高级 第05节 日期类与格式化
    JavaSE 高级 第04节 StringBuffer类
    JavaSE 高级 第03节 Math类与猜数字游戏
  • 原文地址:https://www.cnblogs.com/manuosex/p/3236549.html
Copyright © 2020-2023  润新知