java - 创建线程的几种方法

public class CreateThread {
	public static void main(String[] args) throws ExecutionException, InterruptedException {
    	//1. 继承Thread类,重写run方法
    	NewThread newThread = new NewThread("继承Thread类,重写run方法");
    	newThread.start();
    	//2. 实现Runnable接口,重写run方法
    	new Thread(() -> {
        	System.out.println("实现Runable接口,重写run方法开始执行");
    	}).start();
    	//3. 实现Callable接口,重写call方法,使用FutureTask接收,并获取执行结果
    	FutureTask<String> callTask = new FutureTask<>(() -> {
        	System.out.println("实现Callable接口,重写call方法开始执行");
        	return "call方法执行成功";
    	});
    	new Thread(callTask).start();
    	System.out.println("call方法执行结果:" + callTask.get());

    	//4. 使用线程池执行实现Runnable接口的线程
    	ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, 1000, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(2));
    	threadPoolExecutor.execute(() -> {
        	System.out.println("实现Runable接口,重写run方法,线程池开始执行");
    	});
    	//5. 使用线程池执行实现Callable接口的线程
    	System.out.println("call方法执行结果:" + threadPoolExecutor.submit(() -> {
        	System.out.println("实现Callable接口,重写call方法,线程池开始执行");
        	return "call方法执行成功";
    	}).get());
	}

	static class NewThread extends Thread{

    		public NewThread() {
    		}

    		@Override
    		public void run() {
        		System.out.println(Thread.currentThread().getName() + "开始执行");
    		}

	}
}

执行结果

image

posted @   卡利的亲爹  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示