Saya ingin jika Anda dapat menjelaskan kepada saya dengan cara yang sederhana bagaimana cara kerja pengacau pengganggu. Konsep ini sulit dipahami bagi saya.
Mungkin dengan bantuan Anda, saya bisa memahaminya.
java
design-patterns
multithreading
real-time
chrisapotek
sumber
sumber
Jawaban:
The Fowler Pasal penyedia baik primer, dan penjelasan ini:
Pendekatan yang lebih konvensional mungkin menggunakan Antrian Produsen dan Antrian Konsumen, masing-masing menggunakan kunci sebagai mekanisme konkurensi. Dalam praktiknya, apa yang terjadi dengan antrian produsen dan konsumen adalah antrian tersebut benar-benar kosong atau sepenuhnya penuh sebagian besar waktu, yang menyebabkan pertikaian kunci dan siklus clock terbuang. Pengganggu meringankan ini, sebagian, dengan memiliki semua produsen dan konsumen menggunakan mekanisme antrian yang sama, berkoordinasi satu sama lain dengan menonton penghitung urutan daripada menggunakan mekanisme penguncian.
sumber
Dari artikel ini tentang CoralQueue :
Jadi produsen dan konsumen tidak menginjak satu sama lain di dalam array melingkar dengan memeriksa urutan yang sesuai . Dan untuk mengomunikasikan urutan mereka bolak-balik satu sama lain, mereka menggunakan hambatan memori, bukan kunci. Itulah cara bebas kunci tercepat yang dapat mereka gunakan untuk berkomunikasi.
Untungnya Anda tidak perlu membuka detail internal pola pengganggu untuk menggunakannya. Selain implementasi LMAX ada CoralQueue yang dikembangkan oleh Coral Blocks, yang saya berafiliasi. Beberapa orang merasa lebih mudah untuk memahami konsep dengan membaca kode, jadi di bawah ini adalah contoh sederhana dari satu produsen mengirim pesan ke satu konsumen. Anda juga dapat memeriksa pertanyaan ini untuk contoh demultiplexer (satu produsen ke banyak konsumen).
Penafian: Saya adalah salah satu pengembang CoralQueue.
sumber