zoukankan      html  css  js  c++  java
  • 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的多线程的知识,请听下回分解。

    好好学习,天天向上。

  • 相关阅读:
    Java学习笔记
    Winform中ListView设置了ColumnHeader不显示问题
    GitHub私有仓库为他人授权
    (转)一步一步教你如何在GitHub上上传自己的项目
    【转】C#中的Explicit和Implicit
    C#对象深表复制方法
    mongodb 设置 ssl
    zabbix 4.0.1部署
    redis编译安装
    VMware网络连接模式——桥接模式、NAT模式以及仅主机模式的介绍和区别
  • 原文地址:https://www.cnblogs.com/manuosex/p/3236549.html
Copyright © 2011-2022 走看看