ADT[Abstract Data Type] vs Data Structure
- ADT
: 추상 자료형
- 개념적으로 어떤 동작이 있는지만 정의
- 직접 구현하지 않음
- Data Structure
Stack
: LIFO 형태로 데이터 저장
Queue
: FIFO 형태로 데이터 저장
- 주요동작
- enqueue : 삽입
- dequeue : 삭제
- peek
사용사례
- stack memory & stack frame
- producer - consumer architecture
기술 문서의 Queue
- 항상 FIFO를 의미하진 않음
- 정확히는 대기열로 알아듣는 것이 좋음
Stack/queue 관련 에러
- StackOverflowError
: 재귀함수에 갇혀서 무한 루프 중일때, 메모리가 넘침
- OutOfMemoryError
: queue가 너무 커서 Heap이 꽉 찼을 때
- 해결법: queue의 사이즈를 정해준다.
- null 0r false 반환
- 성공할 때까지 스레드 블락
- 제한된 시간만 블락 -> 안 되면 포기
- LinkedBlockingQueue
- 빈공간이 없으면 블록시키는 것이 내장된 queue