>Java >java지도 시간 >Java가 ExecutorService를 사용하여 많은 수의 스레드를 동기적으로 실행하는 방법에 대한 자세한 설명(그림)

Java가 ExecutorService를 사용하여 많은 수의 스레드를 동기적으로 실행하는 방법에 대한 자세한 설명(그림)

黄舟
黄舟원래의
2017-03-28 10:24:592079검색

이 글에서는 주로 다수의 스레드 실행을 동기화하기 위한 Java의 ExecutorService 사용을 소개합니다. ExecutorService는 중요한 리소스를 운영할 때 다수의 스레드의 안정성을 유지할 수 있습니다.

Java 1.5부터 공식 웹사이트에서는 Executor와 같은 클래스를 출시했습니다. 이 클래스는 중요한 리소스를 운영할 때 많은 스레드의 안정성을 유지할 수 있습니다.
다음 코드부터 시작해 보겠습니다.

TestRunnable.java

public class TestRunnable implements Runnable {
  private String name;

  public TestRunnable(String name) {
    this.name = name;
  }

  @Override
  public void run() {
    while (true) {
      if (Main.Surplus < 0)
        return;
      Main.Surplus--;
      System.out.println(name + " " + Main.Surplus);
    }
  }
}

주 입구

public static void main(String[] args) {

     TestRunnable runnable = new TestRunnable("runnable1");
     TestRunnable runnable2 = new TestRunnable("runnable2");

     Thread t1 = new Thread(runnable);
     Thread t2 = new Thread(runnable2);

     t1.start();
     t2.start();

  }

이러한 방식으로 우리는 물론, 이때 동기화 키워드를 추가해도 되지만, 이 경우에도 약간의 문제가 발생할 수 있습니다

사용할 예정입니다. Java 아래에는 이 문제를 해결하기 위한 스레드 관리 메커니즘이 내장되어 있습니다. 아마도 스레드 풀을 유지 관리하는 것이 작업 요청이 있으면 모두 스레드 풀에 들어가게 되는 것입니다. 요청이 이루어질 수 있도록 하나의 스레드만 엽니다. 중요한 리소스의 순차적 실행 및 호출은 매우 안전합니다. 프로젝트 요구사항

.

그러면 이 두 메소드를 각각 호출해 보면 결과가 매우 질서정연하고 혼란스럽지 않은 것을 알 수 있습니다.

위 내용은 Java가 ExecutorService를 사용하여 많은 수의 스레드를 동기적으로 실행하는 방법에 대한 자세한 설명(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.