다음을 통해 공유


ForkJoinPool.IManagedBlocker 인터페이스

정의

s에서 ForkJoinPool실행 중인 작업에 대한 관리되는 병렬 처리를 확장하기 위한 인터페이스입니다.

[Android.Runtime.Register("java/util/concurrent/ForkJoinPool$ManagedBlocker", "", "Java.Util.Concurrent.ForkJoinPool/IManagedBlockerInvoker")]
public interface ForkJoinPool.IManagedBlocker : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/ForkJoinPool$ManagedBlocker", "", "Java.Util.Concurrent.ForkJoinPool/IManagedBlockerInvoker")>]
type ForkJoinPool.IManagedBlocker = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
특성
구현

설명

s에서 ForkJoinPool실행 중인 작업에 대한 관리되는 병렬 처리를 확장하기 위한 인터페이스입니다.

A ManagedBlocker 는 두 가지 메서드를 제공합니다. 차단이 필요하지 않은 경우 메서드 #isReleasable 가 반환 true 되어야 합니다. 메서드 #block 는 필요한 경우 현재 스레드를 isReleasable 차단합니다(실제로 차단하기 전에 내부적으로 호출). 이러한 작업은 모든 스레드 호출에 의해 수행됩니다 ForkJoinPool#managedBlock(ManagedBlocker). 이 API의 비정상적인 메서드는 오랜 기간 동안 차단할 수 있지만 일반적으로 차단되지는 않는 동기화기를 수용합니다. 마찬가지로, 충분한 병렬 처리를 보장하기 위해 추가 작업자가 될 수 있지만 일반적으로 필요하지 않은 경우를 보다 효율적으로 내부적으로 처리할 수 있습니다. 이를 위해 메서드 isReleasable 의 구현은 반복 호출에 적용할 수 있어야 합니다. 두 메서드는 이전 호출 isReleasable 후 호출되거나 block 반환 true되지 않습니다.

예를 들어 ReentrantLock을 기반으로 하는 ManagedBlocker는 다음과 같습니다.

{@code
            class ManagedLocker implements ManagedBlocker {
              final ReentrantLock lock;
              boolean hasLock = false;
              ManagedLocker(ReentrantLock lock) { this.lock = lock; }
              public boolean block() {
                if (!hasLock)
                  lock.lock();
                return true;
              }
              public boolean isReleasable() {
                return hasLock || (hasLock = lock.tryLock());
              }
            }}

지정된 큐에서 항목 대기를 차단할 수 있는 클래스는 다음과 같습니다.

{@code
            class QueueTaker<E> implements ManagedBlocker {
              final BlockingQueue<E> queue;
              volatile E item = null;
              QueueTaker(BlockingQueue<E> q) { this.queue = q; }
              public boolean block() throws InterruptedException {
                if (item == null)
                  item = queue.take();
                return true;
              }
              public boolean isReleasable() {
                return item != null || (item = queue.poll()) != null;
              }
              public E getItem() { // call after pool.managedBlock completes
                return item;
              }
            }}

에 대한 java.util.concurrent.ForkJoinPool.ManagedBlockerJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
IsReleasable

s에서 ForkJoinPool실행 중인 작업에 대한 관리되는 병렬 처리를 확장하기 위한 인터페이스입니다.

JniIdentityHashCode

래핑된 인스턴스의 java.lang.System.identityHashCode() 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Block()

잠금 또는 조건 대기와 같이 현재 스레드를 차단할 수 있습니다.

Disposed()

인스턴스가 삭제되었을 때 호출됩니다.

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

이 인스턴스에 대한 미해결 참조가 없으면 호출 Dispose()합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

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

인스턴스가 종료될 때 호출됩니다.

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

에서 반환 JniIdentityHashCode하는 값을 설정합니다.

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

s에서 ForkJoinPool실행 중인 작업에 대한 관리되는 병렬 처리를 확장하기 위한 인터페이스입니다.

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

에서 반환 PeerReference하는 값을 설정합니다.

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

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

s에서 ForkJoinPool실행 중인 작업에 대한 관리되는 병렬 처리를 확장하기 위한 인터페이스입니다.

GetJniTypeName(IJavaPeerable)

s에서 ForkJoinPool실행 중인 작업에 대한 관리되는 병렬 처리를 확장하기 위한 인터페이스입니다.

적용 대상