Dalam pengembangan sehari-hari, kita dapat menggunakan antrean, yang merupakan struktur penyimpanan yang dapat mencapai "first-in, first-out".
Skenario aplikasi: tulis log, kirim email, dll
Jika kita perlu merekam log antarmuka setiap pengguna yang meminta data kita, kita tidak perlu menulis log setiap kali pengguna memintanya, kita dapat menempatkan konten log dalam antrian dan membiarkan utas lain menjalankannya, agar tidak mempengaruhi efisiensi aplikasi.
Keuntungan lainnya adalah menambahkan data ke antrean dalam kasus konkurensi, menggunakan satu utas untuk mengeksekusi data antrean dapat menghindari banyak pengecualian, jika konkurensi (multi-utas), akses ke file fisik yang sama akan menyebabkan pengecualian. (tergantung ketersediaan)
Pendekatan universal antrean:
Ini adalah kelas abstrak, dan Anda perlu mewarisi kelas abstraksi ini dan menerapkan metode Eksekusi abstraksi. Karena saya tidak tahu jenis data apa yang ingin Anda proses, generik digunakan di sini, yaitu Entity adalah jenis string, parameter metode adalah jenis string, dan data yang Anda proses adalah data tipe string.
Antrean aman utas ConcurrentQueue memastikan bahwa tidak akan ada pengecualian di lingkungan multi-utas.
ManualResetEvent untuk mengontrol sinyal utas,Di masa lalu, kami memeriksa antrean untuk data setiap beberapa detik atau menitSekarang, kami menambahkan data ke antrian dan hanya perlu meneruskan sinyal!
Menggunakan:
(Akhir)
|