SORU
24 Mart 2012, CUMARTESİ


Bir Yöntem iş Parçacığı için güvenli Yapan nedir? Kuralları nedir?

Genel kurallar/yöntem iş parçacığı için güvenli kılan için kurallar vardır? Muhtemelen tek seferlik durumlar milyon dolar, ama genel olarak ne hakkında? Bu kadar basit mi?

  1. Eğer bir yöntem yalnızca yerel değişkenler erişirse, iş parçacığı güvenli.

Öyle mi? Bu statik yöntemler için de geçerli mi?

Bir cevap, @tarafından sağlanan Cybis oldu: "Yerel değişkenler her iş parçacığı kendi yığını alır, çünkü konuları arasında paylaştırılacak." Bu statik yöntemler için de durum böyle midir?

Eğer bir metot bir nesne geçti ise, bu iş parçacığı güvenliği kırmak mı? Biraz araştırma yaptım ve bir sürü ilgili bazı durumlarda, ama ben umuyordum ki tanımlar, kullanarak sadece birkaç kural, kuralları takip emin olmak için bir yöntem iş parçacığı güvenli.

Yani, nihai sorum şu ki: "orada kurallar kısa bir listesi, bu iş parçacığı için güvenli bir yöntem tanımlayın. Eğer öyleyse, bunlar nelerdir?"

* * * * . DÜZENLE

İyi puan burada çok yapıldı. Bu soruya gerçek cevabı olduğunu düşünüyorum: "iş parçacığı güvenliği sağlamak için basit bir kural yok." Serin. Güzel. Amagenel olarakKabul cevabı iyi, kısa bir özet sağlar bence. Her zaman istisnalar vardır. Öyle olsun. Bununla yaşayabilirim.

CEVAP
24 Mart 2012, CUMARTESİ


Eğer bir yöntem yalnızca yerel değişkenler erişirse, iş parçacığı güvenli. Öyle mi?

Absolultely değil. Sadece tek bir yerel değişken ancak iş parçacığı için güvenli değil tek bir iş parçacığı tarafından erişilen bir program yazabilirsiniz:

http://stackoverflow.com/a/8883117/88656

Bu statik yöntemler için de geçerli mi?

Kesinlikle değil.

Bir cevap, @tarafından sağlanan Cybis oldu: "Yerel değişkenler her iş parçacığı kendi yığını alır, çünkü konuları arasında paylaştırılacak."

Kesinlikle değil. Yerel bir değişkene ayırt edici özelliğidiryerel kapsam içinde görülebilirdeğil ., ^em>geçici havuzu ayrılmış.Mükemmel ve iki farklı iş parçacıklarının aynı yerel değişken erişmek için yasal mümkündür.Bu yüzden anonim yöntemler Lambda, yineleyici blok veya zaman uyumsuz yöntemleri kullanarak bunu yapabilirsiniz.

Bu statik yöntemler için de durum böyle midir?

Kesinlikle değil.

Eğer bir metot bir nesne geçti ise, bu iş parçacığı güvenliği kırmak mı?

Belki.

Biraz araştırma yaptım ve bir sürü ilgili bazı durumlarda, ama ben umuyordum ki tanımlar, kullanarak sadece birkaç kural, kuralları takip emin olmak için bir yöntem iş parçacığı güvenli.

Hayal kırıklığı ile yaşamayı öğrenmek zorunda kalacaksın. Bu çok zor bir konu.

Yani, nihai sorum şu ki: "orada kurallar kısa bir listesi, bu iş parçacığı için güvenli bir yöntem tanımlayın.

Hayır. Benim örnekten daha önce gördüm gibiboş bir yöntem-iplik-güvenli olmayan olabilir. İyi bir yöntem sağlayan kurallar orada kısa bir liste". diye sorabilirsiniz ^em>doğru". Hayır, yok. İş parçacığı güvenliği doğruluğu son derece karmaşık bir tür başka bir şey değildir.

Ayrıca, soru soruyorsun aslında iş parçacığı güvenliği konusunda temel bir yanlış anlama gösterir. İş parçacığı bir güvenlikglobaldeğil ., ^em>yerelbir programın özelliği. Çok zor elde etmektir çünkütüm programı iş parçacığı davranış tam bir bilgiye sahip olmanız gerekirkendi güvenliğini sağlamak için.

Yine, benim bir örnek verelim:her yöntem saçmadır. Bu yöntemleri birbirleri ile bir etkileşim yolu "" program kilitlenme yapar. bu seviye geneldir Bakamazsın her yöntemi ve kontrol dışı olarak "güvenli" ve daha sonra beklediğiniz tüm program güvenli, fazlası olabilir sonucuna çünkü evde yapılan 100% olmayan içi boş tuğla ev de olmayan içi boş. Bir evin boşluğundan her şeyi, kendi parçalarının özelliklerinin bir toplamı değildir, küresel bir özellik.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kayla Caton - Peet

    Kayla Caton

    23 HAZİRAN 2012
  • mliskIT

    mliskIT

    29 Mart 2012
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011