Bagikan melalui


Selector.Select Metode

Definisi

Overload

Select(IConsumer, Int64)

Memilih dan melakukan tindakan pada kunci yang saluran terkaitnya siap untuk operasi I/O.

Select(Int64)

Memilih sekumpulan kunci yang saluran terkaitnya siap untuk operasi I/O.

Select()

Memilih sekumpulan kunci yang saluran terkaitnya siap untuk operasi I/O.

Select(IConsumer)

Memilih dan melakukan tindakan pada kunci yang saluran terkaitnya siap untuk operasi I/O.

Select(IConsumer, Int64)

Memilih dan melakukan tindakan pada kunci yang saluran terkaitnya siap untuk operasi I/O.

[Android.Runtime.Register("select", "(Ljava/util/function/Consumer;J)I", "GetSelect_Ljava_util_function_Consumer_JHandler", ApiSince=33)]
public virtual int Select(Java.Util.Functions.IConsumer? action, long timeout);
[<Android.Runtime.Register("select", "(Ljava/util/function/Consumer;J)I", "GetSelect_Ljava_util_function_Consumer_JHandler", ApiSince=33)>]
abstract member Select : Java.Util.Functions.IConsumer * int64 -> int
override this.Select : Java.Util.Functions.IConsumer * int64 -> int

Parameter

action
IConsumer

Tindakan yang akan dilakukan

timeout
Int64

Jika positif, blokir hingga timeout milidetik, kurang lebih, sambil menunggu saluran siap; jika nol, blokir tanpa batas waktu; tidak boleh negatif

Mengembalikan

Jumlah kunci unik yang dikonsumsi, mungkin nol

Atribut

Keterangan

Memilih dan melakukan tindakan pada kunci yang saluran terkaitnya siap untuk operasi I/O.

Metode ini melakukan operasi pemblokiran pemilihan. Ini bangun dari mengkueri sistem operasi hanya ketika setidaknya satu saluran dipilih, metode pemilih #wakeup wakeup ini dipanggil, utas saat ini terganggu, atau periode batas waktu yang diberikan kedaluwarsa, mana yang lebih dulu.

Metode tindakanConsumer#accept(Object) accept yang ditentukan dipanggil dengan kunci untuk setiap saluran yang siap untuk melakukan operasi yang diidentifikasi oleh set minat kuncinya. Metode accept ini dapat dipanggil lebih dari sekali untuk kunci yang sama tetapi dengan set operasi siap yang berisi subset operasi yang salurannya siap (seperti yang dijelaskan di atas). Metode accept ini dipanggil saat disinkronkan pada pemilih dan set kunci yang dipilih. Perhatian besar harus dilakukan untuk menghindari kebuntuan dengan utas lain yang juga disinkronkan pada objek-objek ini. Operasi pemilihan tidak masuk kembali secara umum dan akibatnya tindakan harus berhati-hati untuk tidak mencoba operasi pemilihan pada pemilih yang sama. Perilaku saat mencoba operasi pemilihan reentrant adalah implementasi khusus dan oleh karena itu tidak ditentukan. Jika tindakan menutup pemilih, maka ClosedSelectorException akan dilemparkan saat tindakan selesai. Tindakan ini tidak dilarang menutup saluran yang terdaftar di pemilih, atau dilarang membatalkan kunci atau mengubah set minat kunci. Jika saluran dipilih tetapi kuncinya dibatalkan atau set minatnya berubah sebelum tindakan dilakukan pada kunci, maka implementasinya khusus untuk apakah tindakan dipanggil (mungkin dipanggil dengan SelectionKey#isValid() invalid kunci). Pengecualian yang dilemparkan oleh tindakan disampaikan kepada pemanggil.

Metode ini tidak menawarkan jaminan real time: Ini menjadwalkan batas waktu seolah-olah dengan memanggil Object#wait(long) metode .

Ditambahkan dalam 11.

Dokumentasi Java untuk java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>, long).

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.

Berlaku untuk

Select(Int64)

Memilih sekumpulan kunci yang saluran terkaitnya siap untuk operasi I/O.

[Android.Runtime.Register("select", "(J)I", "GetSelect_JHandler")]
public abstract int Select(long timeout);
[<Android.Runtime.Register("select", "(J)I", "GetSelect_JHandler")>]
abstract member Select : int64 -> int

Parameter

timeout
Int64

Jika positif, blokir hingga timeout milidetik, kurang lebih, sambil menunggu saluran siap; jika nol, blokir tanpa batas waktu; tidak boleh negatif

Mengembalikan

Jumlah kunci, mungkin nol, yang set siap operasinya diperbarui

Atribut

Pengecualian

jika pemilih ditutup.

jika argumen batas waktu yang diberikan kurang dari nol.

jika terjadi kesalahan I/O.

Keterangan

Memilih sekumpulan kunci yang saluran terkaitnya siap untuk operasi I/O.

Metode ini melakukan operasi pemblokiran pemilihan. Ini mengembalikan hanya setelah setidaknya satu saluran dipilih, metode pemilih #wakeup wakeup ini dipanggil, utas saat ini terganggu, atau periode batas waktu yang diberikan kedaluwarsa, mana yang lebih dulu.

Metode ini tidak menawarkan jaminan real time: Ini menjadwalkan batas waktu seolah-olah dengan memanggil Object#wait(long) metode .

Dokumentasi Java untuk java.nio.channels.Selector.select(long).

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.

Berlaku untuk

Select()

Memilih sekumpulan kunci yang saluran terkaitnya siap untuk operasi I/O.

[Android.Runtime.Register("select", "()I", "GetSelectHandler")]
public abstract int Select();
[<Android.Runtime.Register("select", "()I", "GetSelectHandler")>]
abstract member Select : unit -> int

Mengembalikan

Jumlah kunci, mungkin nol, yang set siap operasinya diperbarui

Atribut

Pengecualian

jika terjadi kesalahan I/O.

jika pemilih ditutup.

Keterangan

Memilih sekumpulan kunci yang saluran terkaitnya siap untuk operasi I/O.

Metode ini melakukan operasi pemblokiran pemilihan. Ini hanya mengembalikan setelah setidaknya satu saluran dipilih, metode pemilih #wakeup wakeup ini dipanggil, atau utas saat ini terganggu, mana yang lebih dulu.

Dokumentasi Java untuk java.nio.channels.Selector.select().

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.

Berlaku untuk

Select(IConsumer)

Memilih dan melakukan tindakan pada kunci yang saluran terkaitnya siap untuk operasi I/O.

[Android.Runtime.Register("select", "(Ljava/util/function/Consumer;)I", "GetSelect_Ljava_util_function_Consumer_Handler", ApiSince=33)]
public virtual int Select(Java.Util.Functions.IConsumer? action);
[<Android.Runtime.Register("select", "(Ljava/util/function/Consumer;)I", "GetSelect_Ljava_util_function_Consumer_Handler", ApiSince=33)>]
abstract member Select : Java.Util.Functions.IConsumer -> int
override this.Select : Java.Util.Functions.IConsumer -> int

Parameter

action
IConsumer

Tindakan yang akan dilakukan

Mengembalikan

Jumlah kunci unik yang dikonsumsi, mungkin nol

Atribut

Keterangan

Memilih dan melakukan tindakan pada kunci yang saluran terkaitnya siap untuk operasi I/O.

Metode ini melakukan operasi pemblokiran pemilihan. Ini bangun dari mengkueri sistem operasi hanya ketika setidaknya satu saluran dipilih, metode pemilih #wakeup wakeup ini dipanggil, atau utas saat ini terganggu, mana yang lebih dulu.

Metode ini setara dengan memanggil metode 2-arg #select(Consumer, long) select dengan batas waktu 0 untuk memblokir tanpa batas waktu.

Ditambahkan dalam 11.

Dokumentasi Java untuk java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>).

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.

Berlaku untuk