JUC——ThreadFactory线程工厂类(四)

2018-06-18 01:49:50来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

ThreadFactory线程工厂类

  在默认情况下如果要想创建一个线程类对象,大部分情况的选择是:直接通过子类为父类进行实例化,利用Runnable子类为Runnable接口实例化。

  或者直接调用Lambda表达式来进行处理,不过在多线程运行机制里面考虑到线程对象创建的合理性,juc专门提供了一个ThreadFactory工程程序类。

 

ThreadFactory定义

package java.util.concurrent;
public interface ThreadFactory{
     Thread newThread(Runnable r);
}

可以看出ThreadFactory只是取得Runnable启动的线程对象做了一个定义而已。

 

 

范例:使用ThreadFactory工厂程序类

package so.strong.concurrents;
import java.util.concurrent.ThreadFactory;

public class StrongDemo {
    public static void main(String[] args) throws Exception {
        Thread t = new SimpleThreadFactory().newThread(() -> {
            for (int x = 0; x < 10; x++) {
                System.out.println(Thread.currentThread().getName() + "、x = " + x);
            }
        });
        t.start();
    }
}

class SimpleThreadFactory implements ThreadFactory {
    private static int count = 0; //进行一个计数的操作

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

 

实际上对于接口对象我们一直在说:必须通过工厂类来取得实例化对象,所以对于ThreadFactory的设计看起来虽然多余,但是也符合标准化的设计。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:spring cloud 入门系列一:初识spring cloud

下一篇:Java锁机制了解一下