IBlockingDeque Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Deque Yang juga mendukung operasi pemblokiran yang menunggu pencopotan menjadi tidak kosong saat mengambil elemen, dan menunggu ruang tersedia dalam deque saat menyimpan elemen.
[Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IBlockingDeque : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IBlockingQueue, Java.Util.IDeque
[<Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IBlockingDeque = interface
interface IBlockingQueue
interface IQueue
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IDeque
- Turunan
- Atribut
- Penerapan
Keterangan
Deque Yang juga mendukung operasi pemblokiran yang menunggu pencopotan menjadi tidak kosong saat mengambil elemen, dan menunggu ruang tersedia dalam deque saat menyimpan elemen.
BlockingDeque metode datang dalam empat bentuk, dengan berbagai cara penanganan operasi yang tidak dapat segera dipenuhi, tetapi mungkin terpenuhi pada beberapa titik di masa depan: satu melempar pengecualian, yang kedua mengembalikan nilai khusus (baik null atau false, tergantung pada operasi), yang ketiga memblokir utas saat ini tanpa batas waktu sampai operasi dapat berhasil, dan blok keempat hanya untuk batas waktu maksimum tertentu sebelum menyerah. Metode ini dirangkum dalam tabel berikut:
<table class="plain">caption>Summary of BlockingDeque methods</caption><tr><th id="First" colspan="5"> First Element (Head)</th<>/tr tr><><td></td<>th id="FThrow" style="font-weight:normal; font-style: miring">Melempar pengecualian</th th<>id="FValue" style="font-weight:normal; font-style: miring">Nilai< khusus/th th<>id="FBlock" style="font-weight:< biasa; font-style: miring"Blocks/th th><id="FTimes" style="font-weight:normal; font-style: italic">Times out</th<>/tr tr<>><th id="FInsert" style="text-align:left">Insert</th<>td headers="First FInsert FThrow"#addFirst(Object) addFirst(e)></td td<>headers="First FInsert FValue"<>#offerFirst(Object) offerFirst(e)/td td<>headers="First FInsert FBlock">#putFirst(Object) putFirst(e)</td td><headers="First FInsert<> FInsert FTimes"><#offerFirst(Object, long, TimeUnit) offerFirst(e, time, unit)/td></tr tr>><<th id="FRemove" style="text-align:left">Remove</th><td headers="First FRemove FThrow"<#removeFirst() removeFirst()>/td td><headers="First FRemove FValue"#pollFirst() pollFirst()></td<>td headers="First FRemove FBlock"<>#takeFirst() takeFirst()/td<>td headers="First FRemove FTimes"#pollFirst(long, TimeUnit) pollFirst(time, unit)></td<>/tr tr><><th id="FExamine" style=" text-align:left">Examine</th><td headers="First FExamine FThrow"#getFirst() getFirst()></td td><headers="First FExamine FValue">#peekFirst() peekFirst()</td td<>headers="First FExamine FBlock" style="First FExamine FBlock="" font-style:italic">not applicable</td<>td headers="First FExamine FTimes" style="font-style:italic">not applicable</td<>/tr tr<>><th id="Last" colspan="5"> Last Element (Tail)</th<>/tr><tr><td></td<>th id="LThrow" style="font-weight:normal; font-style: miring">Melempar pengecualian</th th<>id="LValue" style="font-weight:normal; font-style: italic">Special value</th th><id="LBlock" style="font-weight:normal; font-style: italic">Blocks</th th><id="LTimes" style="font-weight:normal; font-style: italic">Times out</th<>/tr tr><><th id="LInsert" style="text-align:left">Insert</th><td headers="Last LInsert LThrow"><#addLast(Object) addLast(e)/td td><headers="Last LInsert LValue"#offerLast(Object) offerLast(e)></td<>td headers="Last LInsert LBlock"<>#putLast(Object) putLast(e)/td td<>headers="Last LInsert LTimes"<>#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)/td></tr tr><><th id="LRemove" style="text-align:left"Remove/th<>td headers="Last LRemove LThrow"#removeLast() removeLast()></td td><headers="Last LRemove LValue"<>#pollLast() pollLast()/td td><headers="LRemove LBlock Terakhir"#takeLast() takeLast()<>/td td><headers="Last LRemove LTimes"#pollLast(long, TimeUnit) pollLast(time, unit)<>/td<>/tr tr>><<th id="LExamine" style="text-align:left">Examine</th><><header td="LExamine LThrow Terakhir">#getLast() getLast()</td><td headers="Last LExamine LValue">#peekLast() peekLast()</td><td headers="Last LExamine LBlock" style="font-style:italic">not applicable</td><td headers="Last LExamine LTimes" style="font-style:italic">not applicable</td></tr></table>
Seperti halnya BlockingQueue, utas BlockingDeque aman, tidak mengizinkan elemen null, dan mungkin (atau mungkin tidak) dibatasi kapasitas.
Implementasi BlockingDeque dapat digunakan langsung sebagai FIFO BlockingQueue. Metode yang diwariskan dari BlockingQueue antarmuka sama persis dengan BlockingDeque metode seperti yang ditunjukkan dalam tabel berikut:
<table class="plain"><caption>Comparison of BlockingQueue and BlockingDeque methods</caption<>tr><td></td<>th id="BQueue"BlockingQueue> Method</th th<>id="BDeque"> Equivalent BlockingDeque Method</th></tr tr>><<th id="Insert" rowspan="4" style="text-align:left; vertikal-align:top">Insert</th th><id="add" style="font-weight:normal; text-align:left">#add(Object) add(e)</th><td headers="Insert BDeque add"<>#addLast(Object) addLast(e)/td></tr tr><<>th id="offer1" style="font-weight:normal; text-align:left">#offer(Object) offer(e)</th><td headers="Insert BDeque offer1"<#offerLast(Object) offerLast(e)>/td<>/tr tr>><<th id="put" style="font-weight:normal; text-align:left"><#put(Object) put(e)/th<>td headers="Insert BDeque put"<#putLast(Object) putLast(e)>/td></tr><Tr><th id="offer2" style="font-weight:normal; text-align:left">#offer(Object, long, TimeUnit) offer(e, time, unit)</th><td headers="Insert BDeque offer2"<#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)>/td<>/tr tr<><>th id="Remove" rowspan="4" style="text-align:left; vertikal-align:top">Remove</th th<>id="remove" style="font-weight:normal; text-align:left"<>#remove() remove()/th<>td headers="Remove BDeque remove"<>#removeFirst() removeFirst()/td<>/tr tr><><th id="poll1" style=" bobot font:normal; text-align:left">#poll() poll()</th><td headers="Remove BDeque poll1"<#pollFirst() pollFirst()>/td<>/tr tr<<>>th id="take" style="font-weight:normal; text-align:left"<>#take() take()/th<>td headers="Remove BDeque take"#takeFirst() takeFirst()></td></tr tr><<>th id="poll2" style="font-weight:normal; text-align:left"#poll(long, TimeUnit) poll(time, unit)<>/th><td headers=" Hapus poll2 BDeque">#pollFirst(long, TimeUnit) pollFirst(time, unit)</td></tr tr><<>th id="Periksa" rowspan="2" style="text-align:left; vertical-align:top">Examine</th th<>id="element" style="font-weight:normal; text-align:left"<>#element() element()/th<>td headers="Examine BDeque element"<>#getFirst() getFirst()/td<>/tr tr><><th id="peek" style="font-weight:normal; text-align:left" >#peek() peek()</th><td headers="Examine BDeque peek">#peekFirst() peekFirst()</td></tr></table>
Efek konsistensi memori: Seperti halnya koleksi bersamaan lainnya, tindakan dalam utas sebelum menempatkan objek ke dalam BlockingDeque<tindakan i>happen-before</i> selanjutnya ke akses atau penghapusan elemen tersebut BlockingDeque dari di utas lain.
Antarmuka ini adalah anggota Java Collections Framework.
Ditambahkan dalam 1.6.
Dokumentasi Java untuk java.util.concurrent.BlockingDeque.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Properti
| First |
Mengambil, tetapi tidak menghapus, elemen pertama dari deque ini. (Diperoleh dari IDeque) |
| Handle |
Mendapatkan nilai JNI dari objek Android yang mendasar. (Diperoleh dari IJavaObject) |
| IsEmpty |
Mengembalikan jika ini |
| JniIdentityHashCode |
Mengembalikan nilai |
| JniManagedPeerState |
Status serekan terkelola. (Diperoleh dari IJavaPeerable) |
| JniPeerMembers |
Akses anggota dan dukungan pemanggilan. (Diperoleh dari IJavaPeerable) |
| Last |
Mengambil, tetapi tidak menghapus, elemen terakhir dari deque ini. (Diperoleh dari IDeque) |
| PeerReference |
Mengembalikan instans objek Java yang dibungkus JniObjectReference . (Diperoleh dari IJavaPeerable) |
Metode
| Add(Object) |
Menyisipkan elemen yang ditentukan ke dalam antrean yang diwakili oleh deque ini (dengan kata lain, pada ekor deque ini) jika memungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, kembali |
| AddAll(ICollection) |
Menambahkan semua elemen dalam koleksi yang ditentukan ke koleksi ini (operasi opsional). (Diperoleh dari ICollection) |
| AddFirst(Object) |
Menyisipkan elemen yang ditentukan di bagian depan deque ini jika memungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, melemparkan |
| AddLast(Object) |
Menyisipkan elemen yang ditentukan di akhir deque ini jika dimungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, melemparkan |
| Clear() |
Menghapus semua elemen dari koleksi ini (operasi opsional). (Diperoleh dari ICollection) |
| Contains(Object) |
Mengembalikan |
| ContainsAll(ICollection) |
Mengembalikan |
| DescendingIterator() |
Mengembalikan iterator atas elemen dalam deque ini dalam urutan berurutan terbalik. (Diperoleh dari IDeque) |
| Disposed() |
Dipanggil ketika instans telah dibuang. (Diperoleh dari IJavaPeerable) |
| DisposeUnlessReferenced() |
Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan |
| DrainTo(ICollection) |
Menghapus semua elemen yang tersedia dari antrean ini dan menambahkannya ke koleksi yang diberikan. (Diperoleh dari IBlockingQueue) |
| DrainTo(ICollection, Int32) |
Menghapus paling banyak jumlah elemen yang tersedia dari antrean ini dan menambahkannya ke koleksi yang diberikan. (Diperoleh dari IBlockingQueue) |
| Element() |
Mengambil, tetapi tidak menghapus, kepala antrean yang diwakili oleh deque ini (dengan kata lain, elemen pertama dari deque ini). |
| Equals(Object) |
Membandingkan objek yang ditentukan dengan koleksi ini untuk kesetaraan. (Diperoleh dari ICollection) |
| Finalized() |
Dipanggil ketika instans telah diselesaikan. (Diperoleh dari IJavaPeerable) |
| ForEach(IConsumer) |
Melakukan tindakan yang diberikan untuk setiap elemen |
| GetHashCode() |
Mengembalikan nilai kode hash untuk koleksi ini. (Diperoleh dari ICollection) |
| Iterator() |
Mengembalikan iterator atas elemen dalam deque ini dalam urutan yang tepat. |
| Offer(Object) |
Menyisipkan elemen yang ditentukan ke dalam antrean yang diwakili oleh deque ini (dengan kata lain, pada ekor deque ini) jika memungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, kembali |
| Offer(Object, Int64, TimeUnit) |
Menyisipkan elemen yang ditentukan ke dalam antrean yang diwakili oleh deque ini (dengan kata lain, pada ekor deque ini), menunggu hingga waktu tunggu yang ditentukan jika perlu ruang tersedia. |
| OfferFirst(Object) |
Menyisipkan elemen yang ditentukan di bagian depan deque ini jika memungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, kembali |
| OfferFirst(Object, Int64, TimeUnit) |
Menyisipkan elemen yang ditentukan di bagian depan deque ini, menunggu hingga waktu tunggu yang ditentukan jika perlu ruang tersedia. |
| OfferLast(Object) |
Menyisipkan elemen yang ditentukan di akhir deque ini jika memungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, kembali |
| OfferLast(Object, Int64, TimeUnit) |
Menyisipkan elemen yang ditentukan di akhir deque ini, menunggu hingga waktu tunggu yang ditentukan jika perlu agar ruang tersedia. |
| Peek() |
Mengambil, tetapi tidak menghapus, kepala antrean yang diwakili oleh deque ini (dengan kata lain, elemen pertama dari deque ini), atau mengembalikan |
| PeekFirst() |
Mengambil, tetapi tidak menghapus, elemen pertama dari deque ini, atau mengembalikan |
| PeekLast() |
Mengambil, tetapi tidak menghapus, elemen terakhir dari deque ini, atau mengembalikan |
| Poll() |
Mengambil dan menghapus kepala antrean yang diwakili oleh deque ini (dengan kata lain, elemen pertama dari deque ini), atau mengembalikan |
| Poll(Int64, TimeUnit) |
Mengambil dan menghapus kepala antrean yang diwakili oleh deque ini (dengan kata lain, elemen pertama dari deque ini), menunggu hingga waktu tunggu yang ditentukan jika perlu elemen tersedia. |
| PollFirst() |
Mengambil dan menghapus elemen pertama dari deque ini, atau mengembalikan |
| PollFirst(Int64, TimeUnit) |
Mengambil dan menghapus elemen pertama dari deque ini, menunggu hingga waktu tunggu yang ditentukan jika perlu elemen tersedia. |
| PollLast() |
Mengambil dan menghapus elemen terakhir dari deque ini, atau mengembalikan |
| PollLast(Int64, TimeUnit) |
Mengambil dan menghapus elemen terakhir dari deque ini, menunggu hingga waktu tunggu yang ditentukan jika perlu elemen tersedia. |
| Pop() |
Memunculkan elemen dari tumpukan yang diwakili oleh deque ini. (Diperoleh dari IDeque) |
| Push(Object) |
Mendorong elemen ke tumpukan yang diwakili oleh deque ini (dengan kata lain, di kepala deque ini) jika memungkinkan untuk melakukannya segera tanpa melanggar batasan kapasitas, melemparkan |
| Put(Object) |
Menyisipkan elemen yang ditentukan ke dalam antrean yang diwakili oleh deque ini (dengan kata lain, pada ekor deque ini), menunggu jika perlu ruang tersedia. |
| PutFirst(Object) |
Menyisipkan elemen yang ditentukan di bagian depan deque ini, menunggu jika perlu ruang tersedia. |
| PutLast(Object) |
Menyisipkan elemen yang ditentukan di akhir deque ini, menunggu jika perlu ruang tersedia. |
| RemainingCapacity() |
Mengembalikan jumlah elemen tambahan yang idealnya dapat diterima oleh antrean ini (tanpa batasan memori atau sumber daya) tanpa pemblokiran, atau |
| Remove() |
Mengambil dan menghapus kepala antrean yang diwakili oleh deque ini (dengan kata lain, elemen pertama dari deque ini). |
| Remove(Object) |
Menghapus kemunculan pertama elemen yang ditentukan dari deque ini. |
| RemoveAll(ICollection) |
Menghapus semua elemen koleksi ini yang juga terkandung dalam koleksi yang ditentukan (operasi opsional). (Diperoleh dari ICollection) |
| RemoveFirst() |
Mengambil dan menghapus elemen pertama dari deque ini. (Diperoleh dari IDeque) |
| RemoveFirstOccurrence(Object) |
Menghapus kemunculan pertama elemen yang ditentukan dari deque ini. |
| RemoveIf(IPredicate) |
Menghapus semua elemen koleksi ini yang memenuhi predikat yang diberikan. (Diperoleh dari ICollection) |
| RemoveLast() |
Mengambil dan menghapus elemen terakhir dari deque ini. (Diperoleh dari IDeque) |
| RemoveLastOccurrence(Object) |
Menghapus kemunculan terakhir elemen yang ditentukan dari deque ini. |
| RetainAll(ICollection) |
Hanya mempertahankan elemen dalam koleksi ini yang terkandung dalam koleksi yang ditentukan (operasi opsional). (Diperoleh dari ICollection) |
| SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
| SetJniManagedPeerState(JniManagedPeerStates) |
|
| SetPeerReference(JniObjectReference) |
Atur nilai yang dikembalikan oleh |
| Size() |
Mengembalikan jumlah elemen dalam deque ini. |
| Spliterator() |
Membuat lebih dari elemen yang |
| Take() |
Mengambil dan menghapus kepala antrean yang diwakili oleh deque ini (dengan kata lain, elemen pertama dari deque ini), menunggu jika perlu sampai elemen tersedia. |
| TakeFirst() |
Mengambil dan menghapus elemen pertama dari deque ini, menunggu jika perlu sampai elemen tersedia. |
| TakeLast() |
Mengambil dan menghapus elemen terakhir dari deque ini, menunggu jika perlu sampai elemen tersedia. |
| ToArray() |
Mengembalikan array yang berisi semua elemen dalam koleksi ini. (Diperoleh dari ICollection) |
| ToArray(IIntFunction) |
Mengembalikan array yang berisi semua elemen dalam koleksi ini, menggunakan fungsi yang disediakan |
| ToArray(Object[]) |
Mengembalikan array yang berisi semua elemen dalam koleksi ini; jenis runtime array yang dikembalikan adalah array yang ditentukan. (Diperoleh dari ICollection) |
| UnregisterFromRuntime() |
Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue . (Diperoleh dari IJavaPeerable) |
Implementasi Antarmuka Eksplisit
| IIterable.Spliterator() |
|
Metode Ekstensi
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android. |
| JavaCast<TResult>(IJavaObject) |
|
| GetJniTypeName(IJavaPeerable) |
|
| OfferFirstAsync(IBlockingDeque, Object) |
|
| OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
|
| OfferLastAsync(IBlockingDeque, Object) |
|
| OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
|
| PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
|
| PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
|
| PutFirstAsync(IBlockingDeque, Object) |
|
| PutLastAsync(IBlockingDeque, Object) |
|
| TakeFirstAsync(IBlockingDeque) |
|
| TakeLastAsync(IBlockingDeque) |
|
| OfferAsync(IBlockingQueue, Object) |
|
| OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
|
| PollAsync(IBlockingQueue, Int64, TimeUnit) |
|
| PutAsync(IBlockingQueue, Object) |
|
| TakeAsync(IBlockingQueue) |
|
| ToEnumerable(IIterable) |
|
| ToEnumerable<T>(IIterable) |
|