Konu grupları başlangıçta güvenlik amaçlı uygulamaları izole etmek için bir mekanizma olarak öngörülen edildi. Bu sözünü hiçbir zaman yerine getirmediler ve güvenlik öncelikleri, Java güvenlik modelindeki [Gong03] standart çalışmalarda bile belirtilmemiş olsalar bile olmadıkları ölçüde azaldı.
[...] ironik bir cilvesi olarak, ThreadGroup
API iplik güvenlik açısından zayıftır. Bir iş parçacığı grubundaki etkin iş parçacıklarının bir listesini almak için, yöntemini tüm etkin iş parçacıklarını tutmaya yetecek kadar büyük bir parametre olarak alan yöntemini çağırmalısınız. activeCount
yöntemi, bir iş parçacığı grubunda etkin iş parçacıklarının sayısını döndürür, ancak bir dizi ayrıldıktan ve enumerate
yöntemine iletildikten sonra bu sayının hala doğru olacağını garanti etmez. iş parçacığı sayısı artmışsa ve dizi çok küçükse,yöntem , dizide yer olmayan tüm konuları sessizce yok sayar.
Bir iş parçacığı grubunun alt gruplarını listeleyen API benzer şekilde kusurludur. bu sorunlar yeni yöntemlerin eklenmesiyle düzeltilebilirken, gerçek gereksinimi olmadığından, iş parçacığı geçersizdir. ThreadGroup.uncaughtException
yöntem bir iplik yakalanmamış özel durum zaman kontrol altına almak için tek yol olduğu: 1.5 serbest bırakmak için
önce, sadece ThreadGroup
API kullanılabilir işlevselliği bir küçük parçası oldu. Bu işlev, örneğin yığın izlerini bir uygulama için özel günlüğüne yönlendirmek için kullanışlıdır. Ancak, 1.5 sürümünden itibaren, numaralı numaralı 'un setUncaughtExceptionHandler
yöntemiyle kullanılabilir.
Özetlemek gerekirse, iş parçacığı grupları yararlı işlevler açısından çok fazla bilgi sağlamazlar, ve sağladıkları işlevselliklerin çoğu kusurludur. Konu grupları en iyi başarısız bir deneme olarak görülüyor ve sadece varlıklarını görmezden gelmelisiniz. Mantıksal iş parçacıkları gruplarıyla ilgilenen bir sınıf tasarlıyorsanız, , büyük olasılıkla iş parçacığı havuzu yürütücüler kullanmalısınız (Madde 68).
Argh, insanlar "ThreadGroup'u kullanma" deyince nefret ediyorum. "Konuları kullanmayın" demek gibi. Bir iş parçacığı bir ThreadGroup var, bu etrafında bir şey yok, bu yüzden iş parçacığı olmayan bir programa sahip olmak istemiyorsanız, ** ThreadGroups ** kullanıyorsunuz. * Ne zaman, nasıl ve neden * kullanılmaması gerektiğini sormak için bir soruya ihtiyacımız var. Mark Peters'ın belirttiği nedenlerden dolayı –
+1 ve bu sorunun iyi bir araç olduğu için. –
bu topluluk Wiki neden? –