Adakah algoritma yang harus digunakan salah satunya dalam implementasinya?
Hampir pasti tidak. (Memang, dari perspektif teoritis, Anda harus dapat menunggu simulasi / Beritahu menggunakan java.util.concurrent lainnya. . Kelas. Dan disinkronisasi bisa diganti dengan operasi Lock eksplisit ... meskipun Anda akan perlu untuk berhati-hati untuk membuka di finally
klausa.)
Namun, mungkin ada algoritma di mana implementasi berkinerja terbaik di Jawa melibatkan penggunaan langsung disinkronkan, dengan atau tanpa menunggu dan memberi tahu.
Apakah sudah waktunya untuk menghentikan sinkronisasi, menunggu dan memberi tahu?
Terlepas dari jawaban atas pertanyaan sebelumnya, jawabannya pasti tidak.
Tunggu / beri tahu dapat (dan sering) digunakan dengan benar. Di Jawa, penghentian dicadangkan untuk kelas dan metode yang rusak; yaitu di mana penggunaan berkelanjutan harus diperbaiki sebagai masalah urgensi. Jika Sun (dan sekarang Oracle) mencabut sesuatu yang fundamental dan digunakan secara luas sebagai menunggu / memberi tahu, mereka akan menciptakan masalah kompatibilitas yang serius untuk sejumlah besar kode warisan. Itu BUKAN untuk kepentingan siapa pun.
Jika Anda ingin menyingkirkan sinkronisasi / tunggu / beri tahu dalam kode Anda, itu tidak masalah. Tetapi penghentian panggilan untuk penulisan ulang sejumlah besar kode multi-threaded benar dasarnya, dan itu akan menjadi BAD IDEA. Manajer TI perusahaan dan manajer produk perangkat lunak akan membenci Anda karena menyarankannya ...
Layak untuk membaca apa yang berarti "usang" sesuai dengan dokumentasi Java: http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/deprecation.html
Dan juga perhatikan bahwa kita berbicara tentang hal-hal yang sudah ketinggalan zaman yang merupakan inti dari bahasa Jawa. Penghinaan synchronized
memiliki konsekuensi besar.