两种线程设计模型
核心级线程设计模型:
由操作系统内核实现, 特点是: 速度快 windows系统采用的是这种设计模型
可以比喻为用自己的大脑控制自己十根手指头
用户级线程设计模型:
操作系统核外实现的线程模式, 特点是: 线程调度在核外 速度不如核内 Linux系统采用的是这种
可以比喻为自己的十根手指头需要借助外力才能动
Linux系统下有真正意义的多线程么?
由上面Linux采用的线程设计模型可知,Linux系统并没有真正意义上的多线程
因此, Linux系统里处理多线程不如Windows强悍
Linux系统的两个线程库
- LinuxThreads线程库
- RedHat的NPTL
这两个线程库实际上并没有完全按照线程模式进行实现
进程的生命周期
进程的创建及回收
在Android中, ActivityThead的创建预示着进程的创建
进程的级别(由高到低)
- 前台进程: 优先级最高, 正处于Activity Resume()状态, 杀死前台进程需要用户响应
- 可见进程
- 服务进程
- 后台进程
- 空进程: 无组件启动,做进程缓存使用, 恢复速度快
当一个应用启动的时候, 它的进程级别不是保持固定的, Android内部通过Handler进行轮询检测当前进程的状态,ActivityThread掌控的Activity 的生命周期, 如果栈中无Activity存在, 但是有Service存在的情况下, 此时的进程级别就会从前台进程降为服务进程
如果想要查询当前进程的级别, 可以通过ActivityManager .RuningAppProcessInfo进行查询,内部有对应的变量和方法
进程级别的记忆方法
前见服后空
谐音: 权健服后空 (懂?)
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站