背景
最近发现项目中启动优化的代码是直接创建一个线程,然后将一些耗时代码放到该线程中去执行。涉及到启动之后的一些流程分发的耗时任务也是直接创建一个线程去做。
new Thread(new Runnable() {
@Override
public void run() {
//do something
}
}).start();
开启一个线程本身也需要一些开销。所以项目中需要一个类似于线程池的一个管理工具。
基于这个背景开发这个线程管理工具。
使用介绍
在build.gradle文件中添加依赖:
implementation 'com.wzkui:threadmanager:1.0.4'
测试代码;
首先初始化线程池:
ThreadPoolBuilder builder = new ThreadPoolBuilder().createThreadPool().setName(Constants.ThreadPoolName.BACK_GROUND)
.createThreadPool().setName(Constants.ThreadPoolName.DEFAULT);
builder.build();
public class Constants {
public interface ThreadPoolName {
public static final String DEFAULT = "default";
public static final String BACK_GROUND = "backGround";
}
}
可以指定线程池的名字、线程个数、最大线程个数、队列个数、线程保活时间等。
然后就可以编写如下代码:
private void test() {
ThreadManager threadManager = ThreadManager.getInstance();
int i = 10;
final MyTask myTask10 = new MyTask(i++);
MyTask task11 = new MyTask(i++);
MyTask task12 = new MyTask(i++);
MyTask task13 = new MyTask(i++);
MyTask task14 = new MyTask(i++);
MyTask task15 = new MyTask(i++);
MyTask task16 = new MyTask(i++);
MyTask task17 = new MyTask(i++);
MyTask task18 = new MyTask(i++);
MyTask task19 &#