자바 자체 Future 다 중 스 레 드 모드

자바 5 이후 다 중 스 레 드 를 처리 하 는 인 터 페 이 스 를 대량으로 제공 하 였 습 니 다. 예전 에는 스 레 드 풀 만 간단하게 사용 하 였 으 나 최근 에는 Future 모드 도 있 고 공유 하 는 것 을 발견 하 였 습 니 다.
 
 
일부 코드 만 붙 였 습 니 다:
 
정의 풀:
 
 
private static final ExecutorService worker = Executors.newFixedThreadPool(N);//    
	private static List<Future<?>> futureList = new ArrayList<Future<?>>();//       
 
스 레 드 탱크 사용:
 
 
futureList.add(worker.submit(this));

 
끝 스 레 드:
 
 
//            (  )
	public static void cancel() {
		for (Future<?> f : futureList) {
			f.cancel(true);
		}
	}
 
 
주: Future 는 스 레 드 의 실행 결과 어음 입 니 다. Callable 방식 으로 실행 할 때 스 레 드 의 실행 결과 f. get () 을 얻 을 수 있 고 특정한 스 레 드 의 종료 와 실행 상 태 를 제어 할 수 있 습 니 다.
Runnable 방식 으로 실 행 될 때 결 과 는 비어 있 지만 스 레 드 를 제어 할 수 있 습 니 다.
 
보충:
스 레 드 의 인 터 럽 트 방법 을 호출 한 것 같 습 니 다. Thread. currentThread (). interrupt ();그러나 stop 방법 처럼 바로 하위 스 레 드 를 끝 내 는 것 이 아니 라 중 단 된 신 호 량 Thread. interrupted () 를 바 꾸 었 습 니 다. 막 힌 스 레 드 에 서 는 Interrupted Exception 이상 을 던 집 니 다. 그러나 막 히 지 않 는 조건 에서 스 레 드 는 계속 실 행 됩 니 다. 순환 중 에 스스로 신 호 량 을 판단 하여 이상 을 던 져 야 합 니 다.

좋은 웹페이지 즐겨찾기