SORU
2 Mart 2011, ÇARŞAMBA


Non-senkronize statik yöntemler parçacığı eğer güvenli't statik sınıf değişkenleri değiştirmek?

Eğer statik bir yöntem var mı diye merak ediyordum 'değil' senkronize, ama 'değil' değiştirmek herhangi bir statik değişken, iş parçacığı için güvenli mi? Ne ise yöntemi içinde yerel değişken oluşturur. Örneğin, aşağıdaki kod parçacığı güvenli mi?

public static String[] makeStringArray( String a, String b ){
    return new String[]{ a, b };
}

Eğer öyleyse ben iki iş arıyorum ths yöntem sürekli ve aynı anda, bir köpek (ki "great dane" ve "boğa köpek") ve diğer kediler ("Pers" ve "Siyam") aldığım kediler ve Köpekler aynı dizi mi? Ya da kediler ve Köpekler asla aynı zamanda bu yöntem aynı çağrı içinde olacak?

CEVAP
2 Mart 2011, ÇARŞAMBA


Bu yöntemin 0 güvenli iş parçacığı, static. öyle olmasa bile olurdu. İplik-güvenlik sorunu konuları arasında veri paylaşımı için gereken zaman doğar - atom oranı, görüş, vb bakmak gerekir.

Bu yöntem, yalnızca yığın üzerinde sabit nesneler yığını ve kaynaklar üzerinde bulunan parametreleri üzerinde çalışır. Yığın iş parçacığı için doğal olarak yerel, veri paylaşımı, hiç oluşur.

Sabit nesneler (String) da değiştirilemez, iş parçacığı için güvenli bir kez oluşturduğunuz için ve tüm iş parçacıkları aynı değeri görüyor. Eğer yöntemi (değişken) Date kabul edildi öte yandan eğer bir sorun olabilirdi. İki iş parçacığı aynı anda aynı nesne örneği, yarış Koşulları ve görünürlük sorunlara neden değiştirebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ImBluecams

    ImBluecams

    25 Kasım 2012
  • olinerd

    olinerd

    23 AĞUSTOS 2007
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012