Artikel ini menganalisis penggunaan dan penggunaan bersamaan di Java secara rinci. Bagikan untuk semua orang untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
1. Wadah sinkron mencakup dua bagian: vektor dan hashtable
Yang lainnya adalah kelas pengemasan sinkron, yang dibuat oleh koleksi. Wadah wadah sinkron semua keadaan wadah untuk mencapai keamanan utas.
Mereka memiliki masalah berikut:
A) Untuk operasi, diperlukan perlindungan kunci tambahan. Misalnya, kondisi berulang dan hilang seperti menambahkan.
b) Tostring, HashCode, Equals akan secara tidak langsung menyebutnya iteratif, dan Anda perlu memperhatikan konkurensi.
2. Wadah Bersamaan di Java5.0.
ConcurrenthashMap dapat menggantikan implementasi peta sinkron.
Ketika dibaca terutama, CopyOnWriteArrayList adalah implementasi daftar yang sinkron.
Pada saat yang sama, antrian dan blockingqueue: concurentlinkedqueue: antrian FIFO.
PriityQueue: Antrian prioritas non -merger.
BlockingQueue meningkatkan pemblokiran dan akuisisi pemblokiran.
A) ConcurenthashMap: Ini bukan kunci publik, tetapi kunci terpisah. Sejumlah utas membaca dapat diakses secara bersamaan, pembaca dan penulis juga dapat mengakses peta secara bersamaan, dan jumlah tulisan yang terbatas juga dapat memodifikasi peta secara bersamaan. Namun, ukuran dan bahasa yang sama melemah, yang diperkirakan.
b) CopyOnWriteArrayList: Iterator mempertahankan referensi array dasar -layer, dan referensi tidak akan dimodifikasi.
3. Sinkronisasi
a) Countdownlatch. Parameter konstruktor adalah n, setelah hitung mundur, n adalah 0, dan semua utas menunggu terus dieksekusi.
b) Futuretask: Hitung Runnable, yang dapat diimplementasikan oleh Callable dan dapat membawa hasilnya. Termasuk: Tunggu, jalankan dan selesaikan.
c) Semaphore: Jumlah kegiatan yang dapat diakses secara bersamaan
D) Cyclicbarrier: Mirip dengan atresia. Kunci menunggu insiden, dan levelnya menunggu utas lainnya. Awal n, runnable r, n utas menunggu (). Ketika utas N dieksekusi untuk mencapai level, REKUSI R, levelnya diatur ulang, dan NAIST N LANJUTAN.
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.