对java感兴趣的小伙伴们大概都了解线程,但是你知道吗,threadfactory在其中扮演了十分重要的角色呢,所以你知道threadfactory的作用和原理是什么吗?我们一起来看看吧。
异常捕获如下所示:
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; } }
设置线程名,计数等等:
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++); } }
设置thread属性:
public class DaemonThreadFactory implements ThreadFactory { public Thread newThread(Runnable r) { Thread t = new Thread(r); t.setDaemon(true); return t; } }
当线程放入池里,就会调用ThreadFactory的newThread()进行封装。
最简单的ThreadFactory实现如下所示:
public class SimpleThreadFactory implements ThreadFactory { @Override public Thread newThread(Runnable r) { return new Thread(r); } }
上述线程工厂,只是创建了一个新线程,其他什么都没干。实际使用时,一般不会创建这么简单的线程工厂。
好了,以上就是本篇文章的所有内容了,还想了解更多java常见问答相关知识,记得马上来关注本站最新消息哦。
推荐阅读: