didi / booster

🚀Optimizer for mobile applications
https://booster.johnsonlee.io
Apache License 2.0
4.83k stars 575 forks source link

线程池优化,继承ThreadPoolExecutor然后构造函数调用super的 场景,好像没有优化到allowCoreThreadTimeOut #448

Closed maocanmao closed 4 months ago

maocanmao commented 5 months ago

这种方式好像没有看到allowCoreThreadTimeOut的优化呢?

原始代码 public class ThrowableThreadPoolExecutor extends ThreadPoolExecutor { private String mName;

ThrowableThreadPoolExecutor(String name, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {
    super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);
    mName = name;
}

}

编译后代码 public class ThrowableThreadPoolExecutor extends ThreadPoolExecutor { private String mName;

ThrowableThreadPoolExecutor(String name, int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {
    super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, NamedThreadFactory.newInstance(threadFactory, "\u200bcom.apm.demo.ThrowableThreadPoolExecutor"), handler);
    this.mName = name;
}

}

johnsonlee commented 4 months ago

Thread optimization won't apply to custom ThreadPoolExecutor