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; } }
相关文章推荐
- Java Concurrency - ThreadFactory, 使用工厂方法创建线程
- 使用java.util.concurrent.ThreadFactory来创建线程
- ASP.NET2.0登陆控件的使用(常见的三种方法)
- UITabBarController常见代理方法的使用
- TreeSet中实现自己的Comparator,以及常见的Collections方法的使用
- 简介AngularJS中使用factory和service的方法
- android-常见控件的使用方法
- Python: pip常见的使用方法
- Android Tthread 建立线程使用方法
- 线程池ThreadPoolExecutor的使用和有关ThreadFactory和thread等粗解
- 投影机常见使用问题判断方法
- FusionCharts使用问题及解决方法(三)-FusionCharts常见问题大全
- mybatis中获取SqlSessionFactory的几种方法及其相关使用
- Android下PM命令常见使用方法
- WinForm 之Control.Invoke 和Control.BeginInvoke 方法的使用 Control 不能在创建它的 Thread 之外被调用。但可以通过 invoke 来保证 C
- 为什么不能使用Thread.stop()方法?
- HandlerThread,Handler,Thread使用方法
- 一种使用QThread线程的新方法QObject::moveToThread
- iOS - UILabel属性设置和常见使用方法
- CWebBrowser2 常见的使用方法