java的线程管理器,QuickThread - Java线程池管理器

QuickThread

特性

任务扩展:支持延迟任务以及异步回调任务;

回调通知:当任务启动时与任务运行完毕后,有分别的生命周期作为通知;

线程切换:可制定是否回调主线程;

使用安全:当线程出现异常。能自动将catch异常信息传递给用户,避免出现crash;

lastVersion = 68747470733a2f2f6a69747061636b2e696f2f762f7877647a2f517569636b5468726561642e737667

依赖

compile 'com.xwdz:QuickThread:$lastVersion'

创建QuickPool实例

QuietPool sCache = new QuietPool.Builder()

//createXXX

.createCached()

.build();

QuickThread默认提供了了一个统一的管理器维护所有的线程池AskQuietManager

使用QuickPool执行任务;

设置Callback

QuietPool quickPool = AskQuietManager.getNetwork();

quickPool.setGlobalCallback(new GlobalCallback() {

@Override

public void onStart(String threadName) {

}

@Override

public void onCompleted(String threadName) {

}

@Override

public void onError(String threadName, Throwable t) {

}

});

Runnable任务

QuietPool quickPool = AskQuietManager.getNetwork();

quickPool.execute(new Runnable() {

@Override

public void run() {

}

});

同步Callable任务

Future syncFuture = AskQuietManager.getCache().submit(new QuickCallable("test") {

@Override

public String qCall() throws Exception {

Thread.sleep(10000);

return "this is Test";

}

});

try {

String result = (String) syncFuture.get();

} catch (Exception e) {

e.printStackTrace();

}

异步Callable任务

重点说一下第三个参数

isMainUICallback : 是否回调在主线程

AskQuietManager.getCache().async(new QuickCallable("name") {

@Override

public String qCall() throws Exception {

if (Looper.getMainLooper() == Looper.myLooper()) {

Log.e("TAG", "main Thread");

} else {

Log.e("TAG", "child Thread");

}

Thread.sleep(10000);

return "123123";

}

}, new Response() {

@Override

public void onSuccess(String s) {

Log.e("TAG", "s = " + s);

}

@Override

public void onError(Throwable e) {

}

}, true);

延时任务

//单位默认毫秒

AskQuietManager.getIO().delay(new Runnable() {

@Override

public void run() {

}

}, 1000);

//or

AskQuietManager.getIO().delay(new Runnable() {

@Override

public void run() {

}

}, 1000,TimeUnit.MILLISECONDS);

周期性执行一个任务

参数

说明

Runnable

任务

initialDelay

几秒之后开始执行

delay

周期性执行间隔时间

//单位默认毫秒

AskQuietManager.getIO().scheduled(new Runnable() {

@Override

public void run() {

}

}, 1000, 3000);

// or

AskQuietManager.getIO().scheduled(new Runnable() {

@Override

public void run() {

}

}, 1000, 3000,TimeUnit.MILLISECONDS);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值