首页 > 编程语言 > 详细

Java多线程-创建线程

时间:2020-07-10 14:48:14      阅读:58      评论:0      收藏:0      [点我收藏+]

1.继承Thread类

public class Thread1 extends Thread {

    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("继承Thread实现线程-" + Thread.currentThread().getName() + " ==> " + i);
            try {
                Thread.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

 

2.实现Runnable接口

public class Thread2 implements Runnable {

    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("实现Runnable实现线程-" + Thread.currentThread().getName() + " ==> " + i);
            try {
                Thread.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}

3.实现Callable接口

import java.util.concurrent.Callable;

public class Thread3 implements Callable<String> {

    @Override
    public String call() throws Exception {
        for (int i = 0; i < 10; i++) {
            System.out.println("实现Callable实现线程-" + Thread.currentThread().getName() + " ==> " + i);
            try {
                Thread.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return "success";
    }

}

测试线程的开启

public class Test {

    public static void main(String[] args) {
        method1();
        method2();
        method3();
    }

    /**
     * 通过继承Thread类实现多线程
     */
    public static void method1() {
        Thread1 t1 = new Thread1();
        Thread1 t2 = new Thread1();
        t1.setName("线程1");
        t2.setName("线程2");
//        t1.run(); // 方法的调用,不会启动线程
//        t2.run();
        t1.start();
        t2.start();
    }

    /**
     * 通过实现Runnable接口实现多线程
     */
    public static void method2() {
        Thread t1 = new Thread(new Thread2(), "线程T1"); // 需要通过Thread来开启线程
        Thread t2 = new Thread(new Thread2(), "线程T2");
        t1.start();
        t2.start();
    }
    
    /**
     * 通过实现Callable接口实现多线程
     */
    public static void method3() {
        Thread3 t1 = new Thread3(); // 1.定义目标对象
        Thread3 t2 = new Thread3();
        ExecutorService service = Executors.newFixedThreadPool(2); // 2.定义定长线程池,最大并发数为2
        Future<String> future1 = service.submit(t1); // 3.提交执行
        Future<String> future2 = service.submit(t2);
        String result1 = "";
        String result2 = "";
        try {
            result1 = future1.get(); // 4.获取结果
            result2 = future2.get();
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
        System.out.println("result1:" + result1);
        System.out.println("result2:" + result2);
        service.shutdownNow(); // 5.关闭服务
    }
}

 

Java多线程-创建线程

原文:https://www.cnblogs.com/fengb/p/13278748.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!