SORU
24 ŞUBAT 2013, Pazar


&; Atom" quot; programlama ne anlama geliyor?

Etkili Java kitabı belirtir:

Dil belirtimi veya bir okuma yazma garanti değişken değişken Tipi long double [İDEA,sürece değişmez. 17.4.7].

"Atom" Java programlama bağlamında demek, ya da genel olarak programlama nedir?

CEVAP
24 ŞUBAT 2013, Pazar


Örnek olarak, genellikle uzun bir açıklama daha net olduğu için işte bir örnek. foo sanırım 7 ** türünde bir değişken. Aşağıdaki işlemi atomik bir işlem değildir:

foo = 65465498L;

Nitekim, değişken iki ayrı operasyonda kullanılarak yazılır: son 32 bit yazar olan ilk 32 bit yazıyor bu bir, ve ikincisi. Bu başka bir iş parçacığı foo, değerini okumak ve ara durumunu görebilirsiniz anlamına gelir. İşlem atom yapma, (yerinde değil splittable yani tek bir atom, bir işlem olarak başka bir iş parçacığı işlemi görmemiş olduğundan emin olmak için eşitleme mekanizmaları kullanarak, oluşur. Bu işlem atom yapıldıktan sonra başka bir iş parçacığı, ya da atama sonrası atama önce, ya da foo değeri göreceği anlamına gelir. Ama hiç ara değer.

Bunu yapmanın basit bir yolu değişken geçici yapmak için:

private volatile long foo;

Ya da değişken her erişim eşitlemek için:

public synchronized void setFoo(long value) {
    this.foo = value;
}

public synchronized void getFoo() {
    return this.foo;
}
// no other use of foo outside of these two methods, unless also synchronized

Ya da bir AtomicLong ile değiştirmek için:

private AtomicLong foo;

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kontor.TV

    Kontor.TV

    14 Mart 2006
  • michellefeng's channel

    michellefeng

    26 Kasım 2006
  • xCraash

    xCraash

    6 Temmuz 2012