Javaの並行処理(e)のスレッドを作成する方法の概要

次はあなたが理解できるスレッドを作成するには、いくつかの方法で、深展開されていないが、概説します。

まず、Runnableを実装


1.ビジネスクラスでは、Runnableインタフェースを実装
2.Thread注入トラフィッククラス型をして起動する
コードを次のとおりです。

public class RunnableDemo {
    public static void main(String[] args) {
        //Thread构造器注入实现类并启动
        new Thread(new RunnableWorker()).start();
    }
}

//实现Runnable接口
class RunnableWorker implements Runnable {
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(i);
        }
    }
}
复制代码

第二に、Threadクラスの継承


ビジネスクラスの継承スレッドは、スレッドが途中で直接実行することができます。コードは以下の通りであります:

public class ThreadDemo extends Thread {

    public static void main(String[] args) {
        new ThreadDemo().start();
    }
    
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(i);
        }
    }
}
复制代码

第三に、呼び出し可能インターフェースを達成するために


トラフィッククラスは、戻り値、戻り値が実行可能でないから2の間の呼び出し可能な差が行われた呼び出し可能インターフェース又は、Runnableインタフェースを実装することができます。
コードは以下の通りであります:

public class FutureDemo {
    public static void main(String[] args) {
        FutureTask<Integer> task = new FutureTask(new CallableWorker());

        new Thread(task).start();

        try {
            System.out.println(task.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }
}

class CallableWorker implements Callable<Integer> {

    public Integer call() throws Exception {
        return 10;
    }
}
复制代码

四、エグゼキュータービル


トラフィッククラスは、戻り値、戻り値が実行可能でないから2の間の呼び出し可能な差が行われた呼び出し可能インターフェース又は、Runnableインタフェースを実装することができます。
コードは以下の通りであります:

public class ExecutorsDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //创建线程池
        ExecutorService executorService = Executors.newFixedThreadPool(1);
        //提交匿名Callable
        Future<Integer> future = executorService.submit(new Callable<Integer>() {
            public Integer call() throws Exception {
                return 10;
            }
        });

        //获取线程执行返回值
        System.out.println(future.get());
    }
}
复制代码

終わり。


サイト: javashizhan.com/


マイクロチャンネル公共数:


おすすめ

転載: juejin.im/post/5d94d958e51d45780b56832d