您的位置:首页 > 其它

ThreadFactory的常见使用方法

2013-05-29 20:50 435 查看

概述

ThreadFactory是一种在软件开发过程中封装对象创建过程的面向对象的设计模式。常见的有如下两种使用场景:

异常捕获

ExecutorService executor = Executors.newSingleThreadExecutor(new LoggerThreadFactory ());

executor.submit(new Runnable() {
@Override
public void run() {
someObject.methodThatThrowsRuntimeException();
}
});


public class LoggerThreadFactory  implements ThreadFactory {

@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){
@Override
public void uncaughtException(Thread t, Throwable e) {
LoggerFactory.getLogger(t.getName()).error(e.getMessage(), e);
}
});
return t;
}
}


代码debug

public WorkerThreadFactory implements ThreadFactory {

private int counter = 0;
private String prefix = "";

public WorkerThreadFactory(String prefix) {
this.prefix = prefix;
}

public Thread newThread(Runnable r) {
return new Thread(r, prefix + "-" + count++);
}
}


设置线程池中线程属性

public class DaemonThreadFactory implements ThreadFactory {
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setDaemon(true);
return t;
}
}


public class MaxPriorityThreadFactory implements ThreadFactory {
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setPriority(Thread.MAX_PRIORITY);
return t;
}
}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: