«synchronized» etiketlenmiş sorular

Bir blok veya yönteme, giriş Java "senkronize" anahtar sözcüğü tarafından kontrol ediliyorsa "senkronize" olduğu söylenir. Bu, ona erişimin bir seferde tek bir iş parçacığı ile sınırlandırılmasına neden olur: eşzamanlı erişim gerçekleştiğinde, bunlar belirtilmemiş bir sırayla sıralı hale getirilir.



22
Java ile senkronize (bu) kaçının?
Java senkronizasyonu hakkında SO'ya her soru çıktığında, bazı insanlar synchronized(this)kaçınılması gerektiğini belirtmek için çok istekli olurlar . Bunun yerine, özel bir referans üzerinde bir kilidin tercih edileceğini iddia ediyorlar. Verilen nedenlerden bazıları: Bazı kötü kodlar kilidini çalabilir (bu çok popüler, ayrıca "yanlışlıkla" bir varyantı var) aynı sınıftaki tüm senkronize yöntemler …

4
Java'da uçucu ve senkronize arasındaki fark
Bir değişken olarak ilan volatileve her zaman synchronized(this)Java bir blokta değişken erişme arasındaki fark merak ediyorum ? Bu makaleye göre http://www.javamex.com/tutorials/synchronization_volatile.shtml söylenecek çok şey var ve birçok farklılık var, ancak bazı benzerlikler var. Bu bilgi parçasıyla özellikle ilgileniyorum: ... uçucu bir değişkene erişimin engellenme potansiyeli asla yoktur: sadece basit bir …

2
Java 8 arayüz yöntemlerinde “senkronize edilmesine” izin verilmemesinin nedeni nedir?
Java 8'de kolayca yazabilirim: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Sınıflarda da kullanabileceğim tam senkronizasyon anlambilimini alacağım. Ancak, synchronizeddeğiştirici yöntem bildirimlerinde kullanamıyorum : interface Interface2 { default synchronized void method1() …





8
Son olmayan alanın senkronizasyonu
Final olmayan bir sınıf alanında her senkronizasyonda bir uyarı görüntüleniyor. İşte kod: public class X { private Object o; public void setO(Object o) { this.o = o; } public void x() { synchronized (o) // synchronization on a non-final field { } } } bu yüzden kodlamayı şu şekilde değiştirdim: …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.