Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 27855|Yanıt: 1

[Kaynak] Java ThreadYerel ilkeler ve çok iş parçacıklı yeniden kullanım, veri karmaşasına yol açar

[Bağlantıyı kopyala]
Yayınlandı 1.11.2021 11:45:36 | | | |
Programlamada, değişken içeriğini iletmek için metod parametreleri tanımlar; eğer yürütme yöntemi seviyesi derinse, her yöntem geçilecek parametreleri tanımlamalıdır, bu noktada bazı değişkenler ThreadLocal üzerinden geçirilebilir, tüm yöntemler aynı iş parçacığında çalıştırıldıysa, ThreadLocal değeri ayarlanabilir ve okunabilir.

ThreadLocal sınıfı, iş parçacığında yerel değişkenler sağlamak için kullanılır. Bu değişkenler çok iş parçacıklı bir ortamda erişildiğinde (get/set) olduğunda, her iş parçacığındaki değişkenler diğer iş parçacıklarındaki değişkenlerden nispeten bağımsızdır.

ThreadLocal, set metodunu çalıştırırken önce mevcut iş parçacığı (Thread t = Thread.currentThread()) alır ve mevcut iş parçacığı kullanarak ThreadLocalMap alır; harita boş değilse, mevcut iş parçacığında önceden bağlı bir harita vardır, sonra bu haritanın değerini günceller, eğer değilse, değeri haritaya koymak için anahtar olarak kendini kullanır, böylece değişkenler ve iş parçacıklarının bağlanmasını gerçekleştirir.



Kodu test edin, iş parçacığı havuzunu maksimum 5 iş parçacığı olarak ayarlayın ve çoklu iş parçacığı durumunda ThreadLocal get yöntemini çağırdığımızda ThreadLocal verisini (Diğer iş parçacıkları tarafından veri seti), bizThreadLocal küme yöntemi, mevcut iş parçacığında veri ayarlamak için çağrılmaz., aşağıdaki şekilde gösterildiği gibi:



Hata nedenleri:Bir iş parçacığı tekrar kullanıldıktan sonra, ThreadLocal'dan elde edilen ilk değerin diğer önceki iş parçacıklarından kalan bir değer olması muhtemeldir

Çünkü, mevcut başlıkta ThreadLocal ile bitirdikten sonra,Zamanında temizleme için mutlaka kaldırma programını arayın。 Aşağıda gösterildiği gibi:



Kod:

(Son)





Önceki:Docker, konteyner yeniden başlatma ayarlarına ve toplu stop konteynerlerine bakıyor
Önümüzdeki:Jenkins (5) Proje grubu sunumu
Yayınlandı 2.11.2021 21:30:12 |
Tekrar öğrenmeye geldim.
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com