Rumah > pembangunan bahagian belakang > Golang > Adakah Terdapat Java Setara dengan `pilih` Go untuk Membaca Secara Cekap daripada Berbilang Baris Sekatan?

Adakah Terdapat Java Setara dengan `pilih` Go untuk Membaca Secara Cekap daripada Berbilang Baris Sekatan?

Barbara Streisand
Lepaskan: 2024-12-18 20:21:11
asal
262 orang telah melayarinya

Is There a Java Equivalent to Go's `select` for Efficiently Reading from Multiple Blocking Queues?

Setara dengan Go Channel di Java

Soalan:

Saya perlu membaca data dengan cekap daripada berbilang baris gilir menyekat tanpa membuat utas pembaca yang berasingan. Adakah terdapat mekanisme yang setara dengan pemilihan/epoll Go di Java?

Jawapan:

Pertimbangkan untuk menggunakan perpustakaan JCSP, yang menyediakan kelas Alternatif. Alternatif adalah setanding dengan pernyataan pilihan Go. Ia membolehkan anda mencipta urutan pengguna tunggal yang boleh memultiplekskan data daripada berbilang saluran sumber tanpa memerlukan tinjauan berterusan.

Kelebihan Alternatif JCSP:

  • Penggandaan Adil: Alternatif memastikan keadilan dalam penggunaan data, menghalang mana-mana saluran input daripada menjadi kelaparan.
  • Kebebasan daripada Kebuntuan: Saluran JCSP dan Alternatif disahkan secara rasmi, menjadikannya sangat dipercayai dan tahan terhadap kebuntuan.

Contoh Penggunaan:

Kod Java berikut menunjukkan pemultipleks adil menggunakan JCSP:

import org.jcsp.lang.*;

public class FairPlex implements CSProcess {

    private final AltingChannelInput[] in;
    private final ChannelOutput out;

    public FairPlex (final AltingChannelInput[] in, final ChannelOutput out) {
      this.in = in;
      this.out = out;
    }

    public void run () {

      final Alternative alt = new Alternative (in);

      while (true) {
        final int index = alt.fairSelect ();
        out.write (in[index].read ());
      }
    }
 }
Salin selepas log masuk

Nota Tambahan:

Versi semasa JCSP dalam repositori Maven ialah 1.1-rc5, bertentangan dengan apa yang dinyatakan di tapak web JCSP.

Atas ialah kandungan terperinci Adakah Terdapat Java Setara dengan `pilih` Go untuk Membaca Secara Cekap daripada Berbilang Baris Sekatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan