Article / 2026/05/31

性能优化 (十七) 如何锁定线程创建者

性能优化 (十七) 如何锁定线程创建者 的技术笔记。

如何锁定线程创建者

锁定线程创建背景

  • 项目变大之后收敛线程
  • 项目源码、三方库、arr中都有线程的创建
  • 避免恶化的一种监控预防手段

锁定线程创建方案

分析

  • 创建线程的位置获取堆栈
  • 所有的异步方式,都会走到new Thread
  • 特别适合Hook手段
  • 找Hook点: 构造函数或者特定方法
  • Thread的构造函数
DexposedBridge.hookAllConstructor(Thread.class,new XC_MethodHook(){
    @Override
    protected void afterHookedMethod(MethodHookParam param) throws Throwable{
    super.afterHookedMethod(param);
    Thread  thread = (Thread) param.thisObject;
    Log.i("aa",thread.getName()      +"stack"+Log.getStackTraceString(new Throwable()))
    }
  
})

Giscus 未启用:请在 src/site.config.ts 中配置 repoId 与 categoryId。