Java实现线程的3种方式

来源:互联网 发布:王者荣耀抽奖活动源码 编辑:程序博客网 时间:2024/06/06 07:07


package com.main;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class Main {    public static void main(String[] args) {        // write your code here        Thread1 thread1 = new Thread1();        thread1.start();        Thread2 thread2 = new Thread2();        new Thread(thread2).start();        ExecutorService executorService = Executors.newSingleThreadExecutor();        Future<String> future = executorService.submit(new Thread3());        try {            System.out.println(future.get());        } catch (InterruptedException e) {            e.printStackTrace();        } catch (ExecutionException e) {            e.printStackTrace();        }        executorService.shutdown();//        Thread3 thread3 = new Thread3();//        new Thread(thread3).start();  //错误的    }}//implements Runnable//extends Thread//implements Callable<String>

package com.main;/** * Title: Thread1 * Description: * * @date 2017/12/4 10:44 */public class Thread1 extends Thread {    @Override    public void run() {        System.out.println("extends Thread");    }}

package com.main;/** * Title: Thread2 * Description: * * @date 2017/12/4 11:34 */public class Thread2 implements Runnable {    @Override    public void run() {        System.out.println("implements Runnable");    }}

package com.main;import java.util.concurrent.Callable;/** * Title: Thread3 * Description: * * @date 2017/12/4 13:37 */public class Thread3 implements Callable<String> {    @Override    public String call() throws Exception {        return "implements Callable<String>";    }}


无对应的构造函数










原创粉丝点击