본문 바로가기
JAVA

java Blocking Queue

by 아이티.파머 2019. 2. 26.
반응형

BlockingQueue Method

 

2021/01/15 - [JAVA] - ArrayBlockingQueue

 

요소를 검샐할때 큐가 비어 잇지 않을때 까지 대기하는 작업을 추가로 지원하고 요소를 저장할때
큐에서 공간을 사용할수있을때 가지 대기한다.

BlockingQueue는 Queue interface 를 상속 받고 있있다. 연산처리시 다음 네가지 방법으로 제공된다.

하나, 예외를 발생시킨다.
둘 , 특수값 null 또는 false 를 반환한다.
셋, 작업이 성공할때 까지 무기한 차단.
넷, 작업을 포기 하기전에 주어진 최대 시간만 제한 차단.

 

-------------------------------------------------------------------------------- 
| Throws exception  | Special value | Blocks    | Times out 
-------------------------------------------------------------------------------- 
Insert              | add(e)        | offer(e)  | put(e)    | offer(e, time, unit) 
Remove              | remove()      | poll()    | take()    | poll(time, unit) 
Examine             | element()     | peek()    | not       | applicable    not applicable 
-------------------------------------------------------------------------------- 


참고 : https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html 

 

기본 메소드

Add

용량제한 범위를 초과하지 않는 경우 즉시 지정된 요소를 큐에 삽입하고 성공하면 True를 리턴한다. 현재 사용가능한 공간이 없을경우엔 IllegalStateExeception 을 발생시킨다. 용량이 제한된 대기여을 사용하는 경우에 일반적으로 사용하면 좋다.

Put

공간을 사용할수 있을때까지 필요한경우 대기 하면서 지정된 요소를 큐에 삽입한다.

offer

용량제한을 위반하지 않는 경우 즉시 수행할수 있을때 지정된 요소를 큐에 삽입하고 True를 반환한다. 현재 공간이 부족하면 Fasle를 반환한다. add 와 기능은 동일하나 공간이 가득찬 경우 Exception을 발생하지 않고 false를 반환한다.

remainingCapacity

큐가 차단하지 않고 이상적으로 수용 할 수 있는 추가 요소의 수를 반환하거나(남은 공간수 반환), 고유 제한이 없는 경우엔 Integer.MAX_VALUE 를 반환하다.

take

필요한경우 요소를 사용할때까지 대기하면서 큐의 헤드를 검색하고 제거한다. (큐에서 요소를 가져오고 삭제함.)

pool

요소를 가져올때 필요한 경우 지정된 대기 시간가지 대기하면서 큐의 헤드를 검색하고 제거한다. 무제한 기다리는 일이 발생하지 않고 대기 시간이 지나면 null을 반환한다.















반응형

'JAVA' 카테고리의 다른 글

linux java 설치 (cent os) update-alternatives  (0) 2019.03.31
keytool SSL 사설 인증서 / Spring boot ssl  (0) 2019.03.31
JAVA Exception 정리  (0) 2019.02.26
ExecutorService / ThreadPoolExecutor  (0) 2018.11.12
JSR303 HV000030 Error  (0) 2016.10.19