티스토리 뷰
원문 : BlockingQueue
java.util.Queue 는 개체를 꺼내오고자 할 때 해당 Queue 가 비어있지 않을 때까지 기다리거나, 개체를 저장하고자 할 때, 해당 Queue에 공간이 생길 때까지 기다리도록 하는 동작을 부가적으로 제공합니다.
(java.util.Queue에서 제공하고 있는 삽입, 제거 관련 method 는 add, remove, offer, poll입니다. add와 remove의 경우, 개체를 저장해야 하는데, 저장할 공간이 부족하거나, 개체를 꺼내와야 하는데, 개체가 없을 때, Exception 을 발생시키고, offer와 poll의 경우는 false와 null을 반환합니다. 위의 내용이 정확히 무슨 내용인지 모르겠지만, offer와 poll을 이용해서, 기다리도록 하는 동작을 구현하라는 의미인것도 같고,)
BlockingQueue 는 네 가지 형태의 method 를 제공합니다. 이 네 가지 형태의 method 의 차이점은, 의도한 동작이 바로 만족스럽게 동작하지 않았을 때(하지만 미래의 어느 시점에서는 제대로 처리될 수 있는), 발생한 문제를 다루는 방식에 있습니다.
첫 번째 형태의 method는 Exception을 발생시킵니다. 두 번째는 null이나 false 등의 특정 값을 반환하고, 세 번째는 작업이 완수될 때 까지 해당 Thread 를 정지시킵니다. 그리고 네번째는 해당 Thread를 정지시킬 최대한의 시간을 정해놓습니다.
정리한 표는 다음과 같습니다
BlockingQueue 에는 null 개체를 저장할 수 없습니다. add, put method 를 이용해 null 을 저장하면, NullPointerException 이 발생합니다. null 은 sentinel value 또는 poll opration 의 실패를 의미합니다.
BlockingQueue 는 보통 크기에 제한을 가집니다. blocking 없이
java.util.Queue 는 개체를 꺼내오고자 할 때 해당 Queue 가 비어있지 않을 때까지 기다리거나, 개체를 저장하고자 할 때, 해당 Queue에 공간이 생길 때까지 기다리도록 하는 동작을 부가적으로 제공합니다.
(java.util.Queue에서 제공하고 있는 삽입, 제거 관련 method 는 add, remove, offer, poll입니다. add와 remove의 경우, 개체를 저장해야 하는데, 저장할 공간이 부족하거나, 개체를 꺼내와야 하는데, 개체가 없을 때, Exception 을 발생시키고, offer와 poll의 경우는 false와 null을 반환합니다. 위의 내용이 정확히 무슨 내용인지 모르겠지만, offer와 poll을 이용해서, 기다리도록 하는 동작을 구현하라는 의미인것도 같고,)
BlockingQueue 는 네 가지 형태의 method 를 제공합니다. 이 네 가지 형태의 method 의 차이점은, 의도한 동작이 바로 만족스럽게 동작하지 않았을 때(하지만 미래의 어느 시점에서는 제대로 처리될 수 있는), 발생한 문제를 다루는 방식에 있습니다.
첫 번째 형태의 method는 Exception을 발생시킵니다. 두 번째는 null이나 false 등의 특정 값을 반환하고, 세 번째는 작업이 완수될 때 까지 해당 Thread 를 정지시킵니다. 그리고 네번째는 해당 Thread를 정지시킬 최대한의 시간을 정해놓습니다.
정리한 표는 다음과 같습니다
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 |
BlockingQueue 에는 null 개체를 저장할 수 없습니다. add, put method 를 이용해 null 을 저장하면, NullPointerException 이 발생합니다. null 은 sentinel value 또는 poll opration 의 실패를 의미합니다.
BlockingQueue 는 보통 크기에 제한을 가집니다. blocking 없이
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- openoffice
- Java
- Eclipse
- subervsion
- smplayer
- 출력드라이버
- 파란 화면을 보았니
- 다음팟인코더
- pl/java
- yum update
- Numbering
- JavaMail
- OO3
- GMT
- SimpleDateFormat
- Arrays
- Fedora 9
- Fedora 8
- userguide
- 모토로이
- IcedTea6
- output driver
- PostgreSQL
- 병합정렬
- gl2
- 리눅스
- OpenJDK6
- xml2
- tsclient
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함