Απολυμάνσεις Αθήνα

java queue 예제

150 150 trap

대기열에 책을 추가하고 모든 책을 인쇄하는 PriorityQueue 예제를 살펴보겠습니다. PriorityQueue의 요소는 비교 가능한 형식이어야 합니다. 문자열 및 래퍼 클래스는 기본적으로 비교됩니다. PriorityQueue에 사용자 정의 개체를 추가하려면 비교 가능한 인터페이스를 구현해야 합니다. FIFO(선착순)가 큐의 요소를 정렬하는 가장 일반적인 방법입니다. 이 예제에서는 큐를 처리하기 위해 작업을 표시합니다. 예를 들어 여러 스레드에서 단일 디스크에 쓰기하면 리소스 경합이 발생하며 쓰기 시간이 느려질 수 있습니다. BlockingQueue를 사용하여 단일 기록기 스레드를 만들면 이 문제를 완화하고 쓰기 속도가 크게 향상될 수 있습니다. Queue 인터페이스는 java.util 패키지에서 사용할 수 있으며 컬렉션 인터페이스를 확장합니다. 큐 컬렉션은 처리될 요소를 보유하는 데 사용되며 삽입, 제거 등과 같은 다양한 작업을 제공합니다. 목록의 끝에 요소를 삽입하고 목록의 시작 부분(즉, FIFO 또는 First-In-First-Out) 원칙을 따르는 요소를 삭제하는 데 제한이 있는 정렬된 개체 목록입니다. 인터페이스이기 때문에 큐는 선언에 대한 구체적인 클래스가 필요하며 가장 일반적인 클래스는 priorityQueue 및 Java.It LinkedList입니다. PriorityBlockingQueue는 스레드 안전 구현이 필요한 경우 하나의 대체 구현입니다.

Queue의 몇 가지 중요한 특성은 다음과 같습니다: 큐 구현은 일반적으로 null 요소의 삽입을 허용하지 않지만 LinkedList와 같은 일부 구현에서는 null 삽입을 금지하지 않습니다. null은 폴링 메서드에 의해 특수 반환 값으로 사용되어 큐에 요소가 포함되어 있지 않음을 나타내기 때문에 null을 큐에 삽입해서는 안 됩니다. 자바는 TransferQueue 인터페이스, 링크드 트랜스퍼큐의 하나의 구현과 함께 제공됩니다. Java의 큐도 비슷한 방식으로 작동합니다. 대기열을 선언한 후 뒷면에 새 요소를 추가하고 앞에서 제거할 수 있습니다. 이러한 3개의 인터페이스는 Java에서 사용할 수 있는 대부분의 큐에 의해 구현됩니다. 이러한 인터페이스가 수행하도록 설정된 작업을 간단히 살펴보겠습니다.

  • 0