Share via


ConcurrentLinkedQueue 클래스

정의

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

[Android.Runtime.Register("java/util/concurrent/ConcurrentLinkedQueue", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public class ConcurrentLinkedQueue : Java.Util.AbstractQueue, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/util/concurrent/ConcurrentLinkedQueue", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type ConcurrentLinkedQueue = class
    inherit AbstractQueue
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IQueue
    interface ICollection
    interface IIterable
상속
특성
구현

설명

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다. 이 큐는 요소 FIFO(선입선입)를 정렬합니다. <큐의 em>head</em>은 가장 긴 시간 동안 큐에 있었던 요소입니다. <큐의 em>tail</em>은 가장 짧은 시간 동안 큐에 있었던 요소입니다. 새 요소는 큐의 꼬리에 삽입되고 큐 검색 작업은 큐의 머리에서 요소를 가져옵니다. ConcurrentLinkedQueue 은 많은 스레드가 공통 컬렉션에 대한 액세스를 공유할 때 적절한 선택입니다. 대부분의 다른 동시 컬렉션 구현과 마찬가지로 이 클래스는 요소 사용을 null 허용하지 않습니다.

이 구현은 Maged M. Michael 및 Michael L. Scott의 단순, 빠르고 실용적인 비차단 및 차단 동시 큐 알고리즘에 설명된 알고리즘을 기반으로 효율적인 <>em 비<차단/em> 알고리즘을 사용합니다.

반복기는 약하게 일관되어 반복기가 생성된 시점 또는 이후의 큐 상태를 반영하는 요소를 반환합니다. 이러한 작업은 을 throwjava.util.ConcurrentModificationException하지 않으며><><다른 작업과 동시에 진행될 수 있습니다. 반복기를 만든 이후 큐에 포함된 요소는 정확히 한 번 반환됩니다.

대부분의 컬렉션과 size 달리 메서드는 em NOT</em> 상수 시간 작업입니다<>. 이러한 큐의 비동기 특성으로 인해 현재 요소 수를 결정하려면 요소의 순회가 필요하므로 이 컬렉션이 순회 중에 수정된 경우 부정확한 결과를 보고할 수 있습니다.

, 또는 와 같은 #addAll여러 요소를 추가, 제거 또는<>#forEach><검사하는 대량 작업은 원자성으로 수행되도록 보장됩니다. #removeIf 예를 들어 forEach 작업과 순회 동시 작업은 추가된 addAll 요소 중 일부만 관찰할 수 있습니다.

이 클래스와 해당 반복기는 및 인터페이스의 <모든 em>선택적</em> 메서드를 Queue 구현 Iterator 합니다.

메모리 일관성 효과: 다른 동시 컬렉션과 마찬가지로 개체ConcurrentLinkedQueue<를 i happen-before</i>> 작업에 배치하기 전에 스레드의 작업은 다른 스레드의 에서 ConcurrentLinkedQueue 해당 요소에 대한 액세스 또는 제거 이후에 수행됩니다.

이 클래스는 Java Collections Framework의 멤버입니다.

1.5에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.concurrent.ConcurrentLinkedQueue.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

ConcurrentLinkedQueue()

ConcurrentLinkedQueue 처음에 비어 있는 을 만듭니다.

ConcurrentLinkedQueue(ICollection)

ConcurrentLinkedQueue 컬렉션 반복기의 순회 순서로 추가된 지정된 컬렉션의 요소를 포함하는 를 처음에 만듭니다.

ConcurrentLinkedQueue(IntPtr, JniHandleOwnership)

JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
IsEmpty

추가할 항목

(다음에서 상속됨 AbstractCollection)
JniIdentityHashCode

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
JniPeerMembers

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

PeerReference

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

Add(Object)

추가할 항목

(다음에서 상속됨 AbstractCollection)
AddAll(ICollection)

추가할 항목

(다음에서 상속됨 AbstractCollection)
Clear()

추가할 항목

(다음에서 상속됨 AbstractCollection)
Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Contains(Object)

추가할 항목

(다음에서 상속됨 AbstractCollection)
ContainsAll(ICollection)

추가할 항목

(다음에서 상속됨 AbstractCollection)
Dispose()

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
Element()

이 큐의 헤드를 검색하지만 제거하지는 않습니다.

(다음에서 상속됨 AbstractQueue)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
ForEach(IConsumer)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
Iterator()

이 큐의 요소에 대한 반복기를 적절한 순서로 반환합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Offer(Object)

지정된 요소를 이 큐의 꼬리에 삽입합니다.

Peek()

이 큐의 헤드를 검색하지만 제거하지는 않으며 이 큐가 비어 있으면 를 반환 null 합니다.

Poll()

이 큐의 헤드를 검색 및 제거하거나 이 큐가 비어 있으면 를 반환합니다 null .

Remove()

이 큐의 헤드를 검색하고 제거합니다.

(다음에서 상속됨 AbstractQueue)
Remove(Object)

추가할 항목

(다음에서 상속됨 AbstractCollection)
RemoveAll(ICollection)

추가할 항목

(다음에서 상속됨 AbstractCollection)
RemoveIf(IPredicate)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

RetainAll(ICollection)

추가할 항목

(다음에서 상속됨 AbstractCollection)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Size()

이 큐의 요소 수를 반환합니다.

Spliterator()

Spliterator 이 큐의 요소에 대한 를 반환합니다.

ToArray()

추가할 항목

(다음에서 상속됨 AbstractCollection)
ToArray(Object[])

추가할 항목

(다음에서 상속됨 AbstractCollection)
ToArray<T>()

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

GetJniTypeName(IJavaPeerable)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

ToEnumerable(IIterable)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

ToEnumerable<T>(IIterable)

연결된 노드를 기반으로 하는 바인딩되지 않은 스레드로부터 안전한 큐 큐입니다.

적용 대상