ExecutorCompletionService Kelas

Definisi

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

[Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public class ExecutorCompletionService : Java.Lang.Object, IDisposable, Java.Util.Concurrent.ICompletionService
[<Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type ExecutorCompletionService = class
    inherit Object
    interface ICompletionService
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Warisan
ExecutorCompletionService
Atribut
Penerapan

Keterangan

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas. Kelas ini mengatur bahwa tugas yang dikirimkan adalah, setelah selesai, ditempatkan pada antrean yang dapat diakses menggunakan take. Kelas ini cukup ringan agar cocok untuk penggunaan sementara saat memproses grup tugas.

<Contoh Penggunaan b>.</b>

Misalkan Anda memiliki sekumpulan pemecah untuk masalah tertentu, masing-masing mengembalikan nilai dari beberapa jenis Result, dan ingin menjalankannya secara bersamaan, memproses hasil masing-masing yang mengembalikan nilai non-null, dalam beberapa metode use(Result r). Anda dapat menulis ini sebagai:

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException, ExecutionException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              solvers.forEach(cs::submit);
              for (int i = solvers.size(); i > 0; i--) {
                Result r = cs.take().get();
                if (r != null)
                  use(r);
              }
            }}

Misalkan Anda ingin menggunakan hasil non-null pertama dari kumpulan tugas, mengabaikan apa pun yang mengalami pengecualian, dan membatalkan semua tugas lain ketika yang pertama siap:

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              int n = solvers.size();
              List<Future<Result>> futures = new ArrayList<>(n);
              Result result = null;
              try {
                solvers.forEach(solver -> futures.add(cs.submit(solver)));
                for (int i = n; i > 0; i--) {
                  try {
                    Result r = cs.take().get();
                    if (r != null) {
                      result = r;
                      break;
                    }
                  } catch (ExecutionException ignore) {}
                }
              } finally {
                futures.forEach(future -> future.cancel(true));
              }

              if (result != null)
                use(result);
            }}

Ditambahkan dalam 1.5.

Java dokumentasi untuk java.util.concurrent.ExecutorCompletionService.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Konstruktor

Nama Deskripsi
ExecutorCompletionService(IExecutor, IBlockingQueue)

Membuat ExecutorCompletionService menggunakan eksekutor yang disediakan untuk eksekusi tugas dasar dan antrean yang disediakan sebagai antrean penyelesaiannya.

ExecutorCompletionService(IExecutor)

Membuat ExecutorCompletionService menggunakan eksekutor yang disediakan untuk eksekusi tugas dasar dan LinkedBlockingQueue sebagai antrean penyelesaian.

ExecutorCompletionService(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

Properti

Nama Deskripsi
Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
JniPeerMembers

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
Equals(Object)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
Poll()

Mengambil dan menghapus Masa Depan yang mewakili tugas berikutnya yang selesai, atau null jika tidak ada.

Poll(Int64, TimeUnit)

Mengambil dan menghapus Future yang mewakili tugas berikutnya yang selesai, menunggu jika perlu hingga waktu tunggu yang ditentukan jika belum ada.

PollAsync()

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

PollAsync(Int64, TimeUnit)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
Submit(ICallable)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

Submit(IRunnable, Object)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

Take()

Mengambil dan menghapus Future yang mewakili tugas berikutnya yang selesai, menunggu apakah belum ada.

TakeAsync()

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

(Diperoleh dari JavaObject)
IJavaPeerable.UnregisterFromRuntime()

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

CompletionService Yang menggunakan yang disediakan Executor untuk menjalankan tugas.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk