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

  • CNET

    CNET

    5 Mayıs 2006
  • International Secret Agents Concerts

    Internationa

    2 Aralık 2008
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006