线程的创建5大类方法汇总

    public void run() {

        System.out.println("test");

    }

  • 1 Thread及其子类创建:线程的创建、任务、启动(Thread继承了Runnable接口的run)

new Thread(){

@Override public void run() {

System.out.println("test");

}

}.start();

  • 2 Runnable接口:任务的创建

new Thread(new Runnable() {

}).start();

  • 3 Feture -callable(期货模式):方法的调用、执行、准备返回值、获取返回值分离(callback)------单独讲解这个组合用法-见:Feture用法 -callable用法

ThreadFactory threadFactory = new ThreadFactory() {

public Thread newThread(Runnable r) {

return new Thread(r);

}

};

ExecutorService executorService = Executors.newCachedThreadPool(threadFactory);

Future<String> callback = executorService.submit(new Callable<String>() {

public String call() throws Exception {

return "test";

}

});

try {

System.out.println(callback.get());

} catch (InterruptedException e) {

e.printStackTrace();

} catch (ExecutionException e) {

e.printStackTrace();

}

  • 4 Executor:接口,线程的创建、启动

Executor executor = new Executor() {

public void execute(Runnable command) {

new Thread(command).start();

}

};

executor.execute(new Runnable() {

public void run() {

System.out.println("test");

}

});

  • 5 Executors线程池的工具类4大类

      ExecutorService executorService = Executors.newCachedThreadPool(threadFactory);

        executorService.execute(new Runnable() {

            public void run() {

                System.out.println("test");

            }

        });

备注:线程的start仅能执行一次,根据线程的状态图;

newCachedThreadPool 缓存

newFixedThreadPool 定数

newScheduledThreadPool 定时定数

newSingleThreadExecutor 单例

  • ThreadFactory 线程的创建(由Runnable接口和Thread实现而来)

ThreadFactory threadFactory = new ThreadFactory() {

        public Thread newThread(Runnable r) {

            return new Thread(r);

        }

    };

threadFactory.newThread(new Runnable() {

    public void run() {

        System.out.println("test");

    }

}).start();

发布了39 篇原创文章 · 获赞 0 · 访问量 792

猜你喜欢

转载自blog.csdn.net/qq_15458763/article/details/103645234