Rumah > Java > javaTutorial > teks badan

Apakah perbezaan antara Lock dan Synchronized di Java

WBOY
Lepaskan: 2023-04-17 19:19:05
ke hadapan
1259 orang telah melayarinya

1. Dari perspektif fungsi

Lock dan Synchronized kedua-duanya adalah alatan dalam Java yang digunakan untuk menyelesaikan isu keselamatan benang

2 Dari perspektif ciri

Synchronized ialah kata kunci penyegerakan dalam java Lock ialah antara muka yang disediakan dalam pakej J.U.C antara muka ini mempunyai banyak kelas pelaksanaan, termasuk pelaksanaan kunci reentrant seperti ReentrantLock boleh dilaksanakan dalam dua cara Kawal kekuatan kunci

Apakah perbezaan antara Lock dan Synchronized di Java

Satu cara ialah mengubah suai kata kunci synchronized pada tahap kaedah, dan satu lagi ialah mengubah suai pada blok kod Anda boleh mengunci objek melalui synchronized Kitaran hayat kunci digunakan untuk mengawal skop kunci Jika objek kunci adalah objek statik atau objek kelas, maka kunci adalah kunci global Jika objek kunci adalah objek contoh biasa skop kunci bergantung pada kitaran hayat contoh. Butiran kunci dalam Kunci ditentukan oleh kaedah kunci() dan kaedah unlock() yang disediakan di dalamnya

Apakah perbezaan antara Lock dan Synchronized di Java

Seperti yang ditunjukkan di atas: dalam kaedah kunci( ) dan kaedah unlock() boleh memastikan keselamatan benang, dan skop kunci bergantung pada kitaran hayat tika Kunci. Kunci lebih fleksibel daripada Synchronized Kunci boleh memutuskan secara bebas bila hendak mengunci dan bila hendak melepaskan kunci Anda hanya perlu memanggil kunci() dan kaedah buka kunci juga menyediakan kaedah bersaing untuk kunci tryLock(). Kaedah ini boleh memberitahu utas semasa sama ada utas lain sudah menggunakan kunci dengan mengembalikan benar/salah, bagaimanapun, kerana Disegerakkan ialah kata kunci, ia tidak boleh melaksanakan kaedah tidak menyekat kunci bersaing dikeluarkan secara pasif. Ia akan dikeluarkan hanya selepas pelaksanaan blok kod disegerakkan selesai, atau apabila pengecualian berlaku dalam kod Kunci menyediakan mekanisme untuk kunci adil dan kunci tidak adil sumber diperoleh, utas lain sudah beratur atau menunggu kunci dilepaskan, jadi utas yang sedang bersaing untuk kunci tidak boleh melompat ke baris gilir. Kunci yang tidak adil bermakna tidak kira sama ada terdapat utas beratur untuk menunggu kunci, ia akan cuba bersaing untuk kunci sekali , Disegerakkan hanya menyediakan pelaksanaan kunci yang tidak adil. Synchroized

3. Dari perspektif prestasi,

tidak jauh berbeza dengan kunci dari segi prestasi, tetapi akan terdapat beberapa perbezaan dalam pelaksanaan, yang mana adalah ringan Kunci tahap, kunci berat dan mekanisme peningkatan kunci digunakan untuk mengoptimumkan kunci, manakala Lock menggunakan kunci putaran untuk mencapai pengoptimuman prestasiSynchronized

Atas ialah kandungan terperinci Apakah perbezaan antara Lock dan Synchronized di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!