자바 동시성 (예) 스레드를 만들 수있는 방법에 대한 개요

(가) 없습니다 심도 확장 스레드를 만들 수있는 몇 가지 방법을 설명한 다음, 당신은 이해할 수있다.

첫째, 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);
        }
    }
}
复制代码

셋째, 호출 인터페이스를 달성하기 위해


트래픽 클래스는 호출 인터페이스 또는 두 개의 반환 값 후에 수행 사이의 Runnable 인터페이스 호출 가능 차이를 구현할 수 리턴 값의 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;
    }
}
复制代码

네, 실행자 건물


트래픽 클래스는 호출 인터페이스 또는 두 개의 반환 값 후에 수행 사이의 Runnable 인터페이스 호출 가능 차이를 구현할 수 리턴 값의 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