Android 进程 线程分析

Android 进程 线程分析

通过对进程的线程分析能直观看到相关信息,帮助优化APP或者服务提供参考

​ Android线程号规则:主线程与进程号一致(首个线程(主线程)的tid会继承父进程的pid,因此主线程的tid与进程pid相同‌)。子线程创建时由内核动态分配,无固定规则,但通常按创建顺序递增,线程终止后,其tid可能被回收并重新分配给新线程,线程的tid由内核通过gettid()系统调用分配,是真正的硬件线程标识。

进程线程查看:ps -T -p pid,如下:

msm8953_64:/ # ps -A| grep vold
root           427     1  285392   4668 binder_ioctl        0 S vold
msm8953_64:/ # ps -T -p 427
USER           PID   TID  PPID     VSZ    RSS WCHAN            ADDR S CMD
root           427   427     1  285392   4668 binder_io+          0 S Binder:427_2
root           427   434     1  285392   4668 binder_io+          0 S Binder:427_1
root           427   435     1  285392   4668 poll_sche+          0 S Binder:427_2
root           427   436     1  285392   4668 binder_io+          0 S Binder:427_3
root           427   908     1  285392   4668 binder_io+          0 S Binder:427_4
root           427  1675     1  285392   4668 binder_io+          0 S Binder:427_5
root           427  2636     1  285392   4668 binder_io+          0 S Binder:427_6
root           427  2638     1  285392   4668 binder_io+          0 S Binder:427_7
root           427  2640     1  285392   4668 binder_io+          0 S Binder:427_8
root           427  2642     1  285392   4668 binder_io+          0 S Binder:427_9
root           427  2645     1  285392   4668 binder_io+          0 S Binder:427_A
root           427  3044     1  285392   4668 binder_io+          0 S Binder:427_B
msm8953_64:/ #

Linux内核线程状态(WCHAN字段)介绍:

WCHAN介绍应用
SyS_epoll+线程正在执行epoll_wait系统调用,监听文件描述符的I/O事件主线程等待消息队列事件或网络框架(如OkHttp)的I/O操作‌
futex_wai+线程因Futex机制挂起,等待用户态锁释放futex(FUTEX_WAIT)系统调用,常见于线程竞争同步资源时‌
‌wait_woken线程在内核态等待被唤醒,通常与Futex或事件通知机制相关‌wake_up()调用前线程的中间状态,多见于条件变量唤醒流程‌
unix_stre+阻塞在Unix域套接字(AF_UNIX)的数据读写操作‌跨进程通信(如Binder驱动通信的辅助通道)‌
poll_sche+通过poll()select()系统调用等待文件描述符就绪‌相比epollpoll更适用于少量fd的跨平台场景‌
binder_io+线程在Binder驱动中等待跨进程调用(IPC)的I/O完成‌进程间通讯
do_sigtim+处理信号定时器(如SIGALRM),常见于定时任务或线程中断‌timer_create()setitimer()触发的信号处理流程‌
__skb_wai+网络协议栈线程等待sk_buff资源(如内存分配或数据填充)常见于TCP/IP数据包处理流程‌
inotify_wait等待文件系统事件通知‌
sched_yield主动让出CPU(非阻塞等待)‌
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值