Ringkasan
Untuk program multi -umbi, produsen dan model konsumen adalah model yang sangat klasik. Lebih akurat, itu harus disebut "model produser-konsumen-gudang". Setelah meninggalkan gudang, produsen dan konsumen tidak memiliki ruang penyimpanan bersama, dan tidak ada masalah yang tidak kolaboratif.
Contoh teladan
Tentukan sebuah adegan. Gudang hanya memungkinkan 10 item untuk disimpan. Pada saat yang sama, Anda perlu memperhatikan 4 poin berikut:
1. Hanya satu produsen yang dapat diproduksi secara bersamaan.
2. Hanya satu konsumsi konsumen yang dapat tersedia dalam waktu yang sama.
3. Ketika gudang kosong, konsumen tidak dapat terus mengkonsumsi. Konsumen perlu mendaur ulang apakah status gudang saat ini kosong sebelum konsumsi konsumen.
4. Ketika gudang penuh, produsen tidak dapat terus memproduksi. untuk mengeksekusi.
Kode contoh adalah sebagai berikut:
Concurrence Public {public static void main (string [] args) {gudang gudang = gudang baru (); ; {Disinkronkan (this) {while (index == store_size) {coba {this.wait ();} catch (interruptedException e) {e.printstacktrace ();}} ts [index ++] = produk; ); ) {E.PrintStackTrace ();} String Proput = StoreProduts [Index- 1]; Product Return;}} Kelas mengimplementasikan Runnable {Warehouse Warehouse; Product = "Produk"+i; }}}