本文共 1191 字,大约阅读时间需要 3 分钟。
package xyz.jangle.thread.test;import java.util.concurrent.ThreadFactory;import java.util.concurrent.TimeUnit;/** * 线程工厂DEMO(静态和实例工厂) * * java.util.concurrent包下的ThreadFactory接口仅仅是定义了工厂的方法。 * 只是jdk自带的一些,已经实现了很多具体功能的线程工厂是基于该接口实现的。 * 并且有很多方法,使用ThreadFactory接口类型的参数。也就是依赖它。 * @author jangle * */public class ThreadFactoryTest { public static int scount = 0; public static void main(String[] args) { Runnable r = () -> { try { System.out.println("这是线程工厂创建的线程咯。"); TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } }; // 使用工厂对象生产线程 MyThreadFactory myThreadFactory = new ThreadFactoryTest().new MyThreadFactory(); Thread thread = myThreadFactory.newThread(r); thread.start(); // 使用静态工厂的静态方法生产线程。 Thread t = ThreadFactoryTest.createThread(r); t.start(); } // 实例工厂类 class MyThreadFactory implements ThreadFactory { private int count = 0; @Override public Thread newThread(Runnable r) { count++; return new Thread(r); } public int getCount() { return count; } } /** * 静态线程工厂方法 * * @param r * @return */ public static Thread createThread(Runnable r) { System.out.println("静态的线程工厂创建线程"); scount++; return new Thread(r); }}
转载地址:http://sfsvb.baihongyu.com/