이 글에서는 주로 다수의 스레드 실행을 동기화하기 위한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!