PUBLISH: Suatu objek akan memungkinkannya dirujuk oleh kode di luar ruang lingkup saat ini:
Bentuk Umum: Menyimpan referensi ke objek ke domain statis publik; Mengembalikan referensi dalam metode non-pribadi; Menerbitkan instance kelas internal, termasuk referensi.
Escape: Publikasikan objek saat tidak siap.
Jangan biarkan referensi ini melarikan diri dari konstruktor. Misalnya, mulailah utas di konstruktor, dan utas akan berisi referensi ke objek.
Wadah Sinkronisasi: Melakukan akses perjalanan ke semua negara bagian dari wadah, vektor, hashtable, cllections.synchronizedMap | Daftar
Kontainer Bersamaan: ConcurrenthashMap, CopyonWriteArrayList, ConcurrentLinkedQueue, BlockingQueue
Sebutkan keunggulan fitur akses acak.
Pemblokiran Menambahkan Operasi Set Get Blockable
ConcurrenthashMap: Kunci terpisah, membawa throughput tinggi untuk akses bersamaan, sementara kehilangan hampir tidak ada kinerja akses dari satu utas. Mengembalikan iterator yang konsisten lemah.
Konsistensi yang lemah dari iterator akan mendeteksi perubahan dalam wadah setelah iterator dihasilkan.
Ukuran wadah bersamaan (), isempty () melemah dan mengembalikan hasil perkiraan.
CopyOnWriteArrayList: Salin setiap kali wadah dimodifikasi, dan persyaratan berulang lebih besar dari persyaratan modifikasi.
Model produser-konsumen, menggunakan antrian pemblokiran terikat untuk memisahkan produsen dan kode konsumen.
Kerangka kerja pelaksanaan tugas pelaksana mengimplementasikan model produser dan konsumen.
Synchronousqueue: Tunggu konsumen tersedia, tunggu untuk produsen tersedia, cocok untuk skenario di mana konsumen cukup.
Antrian ganda dikaitkan dengan mode pencurian pekerjaan. Ini berbeda dari fakta bahwa semua konsumen berbagi antrian kerja dalam mode produser-konsumen. Setiap konsumen dalam mode pencurian pekerjaan memiliki antrian ganda sendiri. Jika konsumen menyelesaikan semua pekerjaannya, ia dapat mencuri tugas di akhir antrian konsumen lainnya.
Mode pencurian kerja cocok untuk saat menjalankan ke unit tugas, lebih banyak tugas dapat diidentifikasi, seperti melintasi file.
Ketika suatu metode dapat melempar ExcepedException, itu berarti itu adalah metode yang dapat diblokir. Lemparkan atau tangkap Exception.
Synchronizer: Synchronizer --- Semaphore, penghalang, kait, merangkum keadaan, menentukan perilaku utas dalam keadaan ini (lulus atau blok), menyediakan metode untuk memanipulasi keadaan, dan secara efisien menunggu sinkronisasi untuk memasuki keadaan yang diinginkan.
Kunci Latch: Menunda kemajuan utas sampai utas mencapai keadaan akhir, seperti sakelar satu kali. Dapat digunakan untuk memastikan bahwa kegiatan tertentu tidak terjadi sampai kegiatan lain selesai.
Misalnya:
Futuretask dapat digunakan sebagai penguncian, perhitungan hasil portabel abstrak, dan diimplementasikan melalui Callable. Future.get tergantung pada status eksekusi tugas. Jika tugas selesai, hasilnya akan dikembalikan. Kalau tidak, itu akan menunggu.
Kerangka kerja pelaksana menggunakan Futuretask untuk menyelesaikan tugas asinkron.
Semapher Semapher: Digunakan untuk mengontrol jumlah kegiatan yang dapat mengakses sumber daya tertentu secara bersamaan atau melakukan operasi yang diberikan pada saat yang sama, kumpulan sumber daya, batas kontainer.
Level penghalang: Mirip dengan penguncian, semua utas harus mencapai level pada waktu yang sama sebelum mereka dapat melanjutkan pemrosesan. Penguncian menunggu waktu, dan level menunggu utas lainnya, dan digunakan kembali. Melalui level, menunggu akan mengembalikan nomor indeks kedatangan yang unik untuk setiap utas, yang dapat digunakan untuk memilih seorang pemimpin dan melakukan beberapa tugas khusus dalam iterasi berikutnya.
Exchanger adalah bentuk level.
Di atas adalah semua konten artikel ini. Saya berharap konten artikel ini akan membantu untuk belajar atau bekerja semua orang. Saya juga berharap untuk mendukung wulin.com lebih lanjut!