Java Executors: 작업 완료에 대한 비차단 알림
Executor 서비스를 통해 수많은 작업을 처리해야 하는 경우 차단은 중요한 문제가 될 수 있습니다. 스택 공간 제약으로 인한 장애물. 이 문제를 피하려면 작업 완료 시 비차단 알림을 제출하는 콜백 접근 방식을 사용하는 것이 좋습니다.
콜백 인터페이스 생성
원하는 인터페이스를 캡슐화하는 콜백 인터페이스를 정의하세요. 완료 알림을 위한 매개변수입니다. 제공된 코드 예제에서:
public interface Callback { void complete(); }
콜백으로 작업 래핑
이 콜백 인터페이스를 활용하여 실행 가능한 작업에 대한 래퍼 클래스를 만듭니다.
class CallbackTask implements Runnable { private final Runnable task; private final Callback callback; CallbackTask(Runnable task, Callback callback) { this.task = task; this.callback = callback; } @Override public void run() { task.run(); callback.complete(); } }
콜백을 사용하여 작업 제출
콜백 래퍼가 있는 상태에서 다음과 같이 실행기 서비스에 작업을 제출합니다.
ExecutorService executor = Executors.newSingleThreadExecutor(); executor.submit(new CallbackTask(task, callback));
알림 콜백
콜백을 구현하여 완료 알림을 처리하고 대기열에서 다음 작업을 실행합니다.
public class CallbackImpl implements Callback { private Queue<Task> queue; @Override public void complete() { if (!queue.isEmpty()) { executor.submit(new CallbackTask(queue.poll(), this)); } } }
Java 8의 CompletableFuture
이후 Java 8의 CompletableFuture 클래스는 비동기 프로세스 생성 및 관리를 위한 보다 포괄적인 접근 방식을 제공합니다.
CompletableFuture<String> f = CompletableFuture.supplyAsync(svc::work); f.thenAccept(listener::notify);
이 코드는 비동기 작업을 나타내는 CompletableFuture를 생성하고 완료 시 트리거될 콜백을 정의합니다.
위 내용은 콜백이 어떻게 Java 실행기에서 비차단 작업 완료 알림을 활성화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!