SORU
23 EYLÜL 2009, ÇARŞAMBA


Atomicİnteger lazySet vs ayarlayın

AtomicInteger lazySet set yöntem arasındaki fark nedir? documentation lazySet hakkında söylenecek çok şey yok:

Sonunda verilen değere ayarlar.

Saklı değer hemen istenen değere ayarlanır değil, ama gelecekte bir zaman ayarlamak için programlanmış olacak yerine gibi görünüyor. Ancak, bu yöntem, pratik kullanımı nedir? Herhangi bir örnek?

CEVAP
23 EYLÜL 2009, ÇARŞAMBA


Düz Bug 6275329 atıf:

Muhtemelen son küçük JSR166 takip Mustang, "yöntem Atomik sınıflar için lazySet ekledik (Atomicİnteger, AtomicReference, vb). Bu bir niş. ince ayar kodu kullanırken bazen yararlı yöntem engellenmeyen veri yapıları. Mantığı vardır Yeniden Sipariş herhangi biriyle birlikte olmak garanti değil yazmak önceki yaz, daha sonraki işlemler ile yeniden (veya benzer diğer konuları görünmeyebilir) kadar bazı diğer uçucu yazma veya eşitleme eylem oluşur).

Ana kullanım örneği düğümleri alanlarında nulling için. engellenmeyen sadece kaçınmak uğruna veri yapıları uzun süreli atık bekletme; zararsız olduğunda geçerlidir diğer konuları bir süre boş olmayan değerler görüyorum, ama isterseniz yapıları sonunda GCable sağlamak gibi. Böyle doğduğunda kaçınarak daha iyi performans alabilirsiniz boş uçucu-yazma masrafları. Birkaç vardır diğer kullanım boyunca referans dışı tabanlı için bu satırları durumlarda bu yöntem tüm desteklenen bu yüzden de Bayar, AtomicX sınıflar.

Açısından bu işlemleri düşünmek gibi insanlar için makine düzeyinde ortak çoklu işlemcili, lazySet sınırları mağaza-mağaza bariyer bir önceki ya da (hangi sağlar no-op ya da çok daha geçerli platformlar üzerine), ama hayır mağaza-yük engel genellikle pahalı parçası olan uçucu-yazma).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kndx

    kndx

    11 Mart 2006
  • MandMEvangelists

    MandMEvangel

    28 Ocak 2008
  • RickardRick

    RickardRick

    9 Mart 2007