Android线程与Java线程

线程的概念

进程内相对独立的、拥有独立的堆栈和局部变量的的可执行单元。

线程的生命周期

创建,阻塞,执行,等待,死亡

Android线程的类型

分类的依据:根据线程的作用

  • UI thread(main thread):接收和处理用户事件输入,View更新;

  • 系统类 thread:例如
    1). binder(服务于进程间通信)
    2). GC
    3). debug connection
    4). finalizers

  • Background thread(work thread):执行自定义task

Android线程的通信方式

workThread <---> workThread
  • 管道(pipe)
    关键字:一方写一方读、线程安全、转移的数据类型binary or character data、对应的PipedXXXX JAVA io Api、默认buffer=1024
    writer如果关闭,连接既disconnected,但是buffer里面数据依旧可以被读取,如果reader closed,buffer 就被clear

  • 共享内存(Shared memory)
    线程不安全、变量,对象,

  • 阻塞队列(BlockingQueue)

workThread <---->UI thread(更新UI线程的方式)
  • Activity.runOnUiThread()
  • View.post()/delayPost()
  • Handler framework //TODO:待专题梳理
  • Broadcasts
  • AsyncTask's onProgressUpdate()

如何保证线程安全 //TODO: 待专题梳理

主要有两种方法

  • 锁关键字
  • 并发包下面的容器和锁
    1). java.util.concurrent.locks.ReentrantLock
    2). java.util.concurrent.locks.ReentrantReadWriteLock

你可能感兴趣的:(Android线程与Java线程)