首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux下的线程与进程

linux下的线程与进程

作者头像
乱码三千
发布2021-07-29 15:09:08
1.7K0
发布2021-07-29 15:09:08
举报
文章被收录于专栏:乱码三千乱码三千

两种线程设计模型

  • 核心级线程设计模型: 由操作系统内核实现, 特点是: 速度快 windows系统采用的是这种设计模型 可以比喻为用自己的大脑控制自己十根手指头
  • 用户级线程设计模型: 操作系统核外实现的线程模式, 特点是: 线程调度在核外 速度不如核内 Linux系统采用的是这种

可以比喻为自己的十根手指头需要借助外力才能动

Linux系统下有真正意义的多线程么?

由上面Linux采用的线程设计模型可知,Linux系统并没有真正意义上的多线程

因此, Linux系统里处理多线程不如Windows强悍

Linux系统的两个线程库

  • LinuxThreads线程库
  • RedHat的NPTL

这两个线程库实际上并没有完全按照线程模式进行实现

进程的生命周期

进程的创建及回收

在Android中, ActivityThead的创建预示着进程的创建

进程的级别(由高到低)
  • 前台进程: 优先级最高, 正处于Activity Resume()状态, 杀死前台进程需要用户响应
  • 可见进程
  • 服务进程
  • 后台进程
  • 空进程: 无组件启动,做进程缓存使用, 恢复速度快

当一个应用启动的时候, 它的进程级别不是保持固定的, Android内部通过Handler进行轮询检测当前进程的状态,ActivityThread掌控的Activity 的生命周期, 如果栈中无Activity存在, 但是有Service存在的情况下, 此时的进程级别就会从前台进程降为服务进程

如果想要查询当前进程的级别, 可以通过ActivityManager .RuningAppProcessInfo进行查询,内部有对应的变量和方法

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 两种线程设计模型
  • Linux系统下有真正意义的多线程么?
  • Linux系统的两个线程库
  • 进程的生命周期
    • 进程的创建及回收
      • 进程的级别(由高到低)
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档