Apabila blok kod kunci disegerakkan dalam Java, adakah kelas ini perlu menjadi satu?
高洛峰
高洛峰 2017-06-28 09:22:12
0
2
962

Apabila ia mengunci kaedah atau blok kod, paling banyak satu utas boleh melaksanakan kod ini pada masa yang sama. Apabila dua utas serentak mengakses blok kod penyegerakan terkunci ini dalam objek objek yang sama, hanya satu utas boleh dilaksanakan pada satu masa. Benang lain mesti menunggu sehingga benang semasa selesai melaksanakan blok kod ini sebelum ia boleh melaksanakan blok kod ini.

Maka persoalannya ialah, jika dua utas mengakses contoh objek ini yang berbeza, adakah ia masih akan disekat?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
Ty80

disegerakkan boleh digunakan dalam tiga cara berikut

  1. Nyatakan objek untuk dikunci. Serupa dengan disegerakkan (contoh) {}.

  2. Bertindak secara langsung pada kaedah contoh. Ia bersamaan dengan mengunci kejadian semasa Sebelum memasuki kaedah penyegerakan, anda mesti mendapatkan kunci kejadian semasa.

  3. Bertindak secara langsung pada kaedah statik. Ia bersamaan dengan mengunci kelas semasa dan mendapatkan kunci kelas semasa sebelum memasuki kaedah penyegerakan.

Untuk 1 dan 2 di atas. Benang mesti disekat hanya jika ia adalah objek yang sama atau kejadian yang sama.

扔个三星炸死你

Kunci ditambahkan pada kejadian objek. Kunci yang ditambahkan pada objek berbeza tidak akan menjejaskan satu sama lain. Dua utas yang mengakses dua objek berbeza tidak akan menyekat satu sama lain.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan