Java의 Executor는 ThreadPool 개념을 추상화하여 (이해할 수있는 한) 작업을 받아들이고 실행할 수 있습니다.ThreadPool은 폴링과 같은 Executor입니다.
폴링 개념과 비슷한 예외가 있습니다. 특정 큐 (은BlockingQueue
을 구현하지 않음)에서 항목을 지속적으로 폴링 (대기열에서 제외)하고 실행 한 다음 절전 모드로 종료해야합니다.
기성 추상화가 있습니까? 아니면 직접 작성해야합니까?
Java의 Executor는 ThreadPool 개념을 추상화하여 (이해할 수있는 한) 작업을 받아들이고 실행할 수 있습니다.ThreadPool은 폴링과 같은 Executor입니다.
폴링 개념과 비슷한 예외가 있습니다. 특정 큐 (은BlockingQueue
을 구현하지 않음)에서 항목을 지속적으로 폴링 (대기열에서 제외)하고 실행 한 다음 절전 모드로 종료해야합니다.
기성 추상화가 있습니까? 아니면 직접 작성해야합니까?
폴링이 용이하다 (더 나은 제목의 제안을 환영합니다) : 나는 당신이하려고하는 정확히 무엇인지 확실히 모르겠어요으로
이Thread t = new Thread(new Runnable() {
public void run() {
try {
while (!t.isInterrupted()) {
Object item;
while ((item = queue.take()) == null) {//does not block
synchronized (lock) { lock.wait(1000L) } //spin on a lock
}
//item is not null
handle(item);
}
} catch (InterruptedException e) { }
}
});
t.start();
은 아마 당신이 질문을 바꿔 필요 해야 할 것?
제목 제안 : "사용자 정의 대기열을 j.u.c 실행 프로그램에 어떻게 통합 할 수 있습니까?" –
나에게 제목은 괜찮다. 나는 네 제목을 이해했다. 그리고 그것에는 수수께끼가 있습니다. – flq
음, 한가지 제안은 Quartz ffs를 사용하는 것입니다! 제목이 분명하다고는 생각하지 않습니다. 폴링은 몇 줄의 코드입니다 (아래 나의 답변 참조). 반면에 스레드 풀은 천이 될 수 있습니다. 왜 당신은 몇 가지 loc에 대한 추상화 레이어가 필요하겠습니까? –