Stack vs Queue

Y39·2023년 4월 1일
0

toBeProgrammer

목록 보기
76/88

ADT[Abstract Data Type] vs Data Structure

  • ADT
    : 추상 자료형
    • 개념적으로 어떤 동작이 있는지만 정의
    • 직접 구현하지 않음
  • Data Structure
    • ADT를 직접 구현한 것

Stack

: LIFO 형태로 데이터 저장

  • 주요동작
    • push : 삽입
    • pop : 삭제
    • peek

Queue

: FIFO 형태로 데이터 저장

  • 주요동작
    • enqueue : 삽입
    • dequeue : 삭제
    • peek

사용사례

  • stack memory & stack frame
  • producer - consumer architecture

기술 문서의 Queue

  • 항상 FIFO를 의미하진 않음
    • priority queue일 수 있는 것
  • 정확히는 대기열로 알아듣는 것이 좋음

Stack/queue 관련 에러

  • StackOverflowError
    : 재귀함수에 갇혀서 무한 루프 중일때, 메모리가 넘침
    • 해결법: 탈출 조건을 잘 설정하자
  • OutOfMemoryError
    : queue가 너무 커서 Heap이 꽉 찼을 때
    • 해결법: queue의 사이즈를 정해준다.
      • null 0r false 반환
      • 성공할 때까지 스레드 블락
      • 제한된 시간만 블락 -> 안 되면 포기
    • LinkedBlockingQueue
      • 빈공간이 없으면 블록시키는 것이 내장된 queue
profile
System.out.print("Bold")

0개의 댓글