Paket | flash.concurrent |
Sınıf | public final class Mutex |
Miras Alma | Mutex Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.5, AIR 3.5 |
shareable
özelliği true
olan bir ByteArray nesnesi) erişen farklı worker (işçi) öğelerinde yönetmektir. Ancak bir Mutex, worker (işçi) öğelerinin AIR yerel uzantısı veya bir dosya sistemi dosyası gibi paylaşılabilir herhangi bir kaynağa erişimini yönetmek için kullanılabilir. Kaynağın ne olduğuna bakılmaksızın mutex öğesinin amacı, kaynağa bir kerede yalnızca bir kod dizisinin erişmesini sağlamaktır.
Mutex, kaynak sahipliği kavramını kullanarak erişimi yönetir. Herhangi bir zamanda tek bir mutex öğesine en fazla bir worker (işçi) "sahip olabilir". Bir mutex öğesinin sahipliği bir worker (işçi) öğesinden diğer bir worker (işçi) öğesine geçtiğinde geçiş atomiktir. Bu; birden fazla worker (işçi) öğesinin, mutex sahipliğini almasının hiçbir zaman mümkün olmayacağını garanti altına alır. Bir worker (işçi) öğesindeki kod yalnızca paylaşılan bir kaynak üzerinde çalıştığı sürece, bu worker (işçi) mutex öğesine sahip olduğunda birden fazla worker (işçi) öğesine ait herhangi bir çakışmanın olmayacağından emin olabilirsiniz.
Kullanılabilir durumdaysa mutex sahipliğini almak için tryLock()
yöntemini kullanın. Mutex kullanılabilir hale gelene kadar geçerli worker (işçi) öğesinin çalıştırmasını duraklatmak için lock()
yöntemini kullanın ve mutex öğesinin sahipliğini alın. Geçerli worker (işçi) mutex sahipliğini aldıktan sonra paylaşılan kaynak üzerinde güvenle çalışabilir. Bu işlemler tamamlandığında mutex öğesini bırakmak için unlock()
yöntemini çağırın. Bu durumda geçerli worker (işçi) öğesinin artık paylaşılan kaynağa erişmemesi gerekir.
Mutex sınıfı, worker (işçi) öğeleri arasında kopyalanan değil, paylaşılan özel nesne türlerinden biridir. Worker nesnesinin setSharedProperty()
yöntemini çağırarak veya bir MessageChannel nesnesini kullanarak bir worker (işçi) öğesinden başka bir worker (işçi) öğesine bir mutex ilettiğinizde her iki worker (işçi) öğesinin de çalışma zamanının belleğinde aynı Mutex nesnesine referans vardır.
İlgili API Öğeleri
Yöntem | Tanımlayan: | ||
---|---|---|---|
Mutex()
Yeni bir Mutex örneği oluşturur. | Mutex | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Bu mutex kullanılabilir duruma gelene kadar geçerli worker (işçi) öğesinin çalıştırmasını duraklatır ve ardından mutex sahipliğini alır. | Mutex | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Kullanılabilir durumdaysa mutex sahipliğini alır. | Mutex | ||
Bu mutex öğesinin sahipliğini bırakır ve herhangi bir worker (işçi) öğesinin mutex'i almasına ve ilişkili kaynak üzerinde çalışma gerçekleştirmesine olanak tanır. | Mutex | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
Mutex | () | Yapıcı |
public function Mutex()
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.5, AIR 3.5 |
Yeni bir Mutex örneği oluşturur.
Atar
Error — mutex başlatılamazsa.
|
lock | () | yöntem |
public function lock():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.5, AIR 3.5 |
Bu mutex kullanılabilir duruma gelene kadar geçerli worker (işçi) öğesinin çalıştırmasını duraklatır ve ardından mutex sahipliğini alır. lock()
çağrıldığında, mutex sahibi başka bir worker (işçi) ise; çağrıyı yapan worker (işçi) öğesinin çalıştırma iş parçacığı lock()
çağrısında duraklar ve worker (işçi) sahiplik istekleri sırasına eklenir. Çağrıyı yapan worker (işçi) öğesi mutex'i aldığında, worker (işçi) öğesinin çalışması lock()
çağrısını takip eden kod satırı ile devam eder.
Geçerli worker (işçi) mutex sahipliğini aldıktan sonra paylaşılan kaynak üzerinde güvenle çalışabilir. Bu işlemler tamamlandığında mutex öğesini bırakmak için unlock()
yöntemini çağırın. Bu durumda geçerli worker (işçi) öğesinin artık paylaşılan kaynağa erişmemesi gerekir.
Dahili olarak bir mutex, aldığı kilitleme isteği sayısının kaydını tutar. Mutex öğesinin tamamen bırakılabilmesi için, kilidi kaldırma isteklerinden aynı sayıda alması gerekir. Mutex öğesine sahip worker (işçi) öğesindeki kod onu tekrar kilitlerse (lock()
yöntemini çağırarak) dahili kilit sayısı bir artar. Mutex sahipliğini bırakmak için unlock()
yöntemini, kilitleme isteği sayısı ile aynı sıklıkta çağırmanız gerekir.
Bir mutex için birden fazla worker (işçi) öğesi bekliyorsa mutex, en uzun süre bekleyen worker (işçi) öğesine sahipliği atama önceliği verir. Ancak bir worker (işçi) iş parçacığının zamanlanması, ana bilgisayar işletim sistemi tarafından yönetildiğinden worker (işçi) öğeleri arasında belirli bir kod çalıştırma sırası garanti edilemez.
tryLock | () | yöntem |
public function tryLock():Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.5, AIR 3.5 |
Kullanılabilir durumdaysa mutex sahipliğini alır. Başka bir worker (işçi) zaten mutex öğesine sahipse veya başka bir worker (işçi) lock()
yöntemini çağırdıysa ve mutex öğesini almak için bekliyorsa mutex kullanılabilir durumda değildir. Bu durumda bu yöntemin çağrılması false
değerini döndürür ve kod çalıştırma işlemi hemen devam eder.
Geçerli worker (işçi) mutex sahipliğini aldıktan sonra paylaşılan kaynak üzerinde güvenle çalışabilir. Bu işlemler tamamlandığında mutex öğesini bırakmak için unlock()
yöntemini çağırın. Bu durumda geçerli worker (işçi) öğesinin artık paylaşılan kaynağa erişmemesi gerekir.
Bir mutex için birden fazla worker (işçi) öğesi bekliyorsa mutex, en uzun süre bekleyen worker (işçi) öğesine sahipliği atama önceliği verir. Ancak bir worker (işçi) iş parçacığının zamanlanması, ana bilgisayar işletim sistemi tarafından yönetildiğinden worker (işçi) öğeleri arasında belirli bir kod çalıştırma sırası garanti edilemez.
DöndürürBoolean — Mutex kullanılabilir durumdaysa (ve sahibi artık geçerli worker (işçi) ise) true ; geçerli worker (işçi), mutex sahipliğini almadıysa false .
|
unlock | () | yöntem |
public function unlock():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 11.5, AIR 3.5 |
Bu mutex öğesinin sahipliğini bırakır ve herhangi bir worker (işçi) öğesinin mutex'i almasına ve ilişkili kaynak üzerinde çalışma gerçekleştirmesine olanak tanır.
Dahili olarak bir mutex, aldığı kilitleme isteği sayısının kaydını tutar. Mutex sahipliğinin bırakılabilmesi için bir worker (işçi) öğesindeki kodun, unlock()
yöntemini kilitleme isteği sayısı ile aynı sıklıkta çağırması gerekir.
Atar
IllegalOperationError — geçerli worker (işçi) mutex öğesine sahip olmadığında.
|
Tue Jun 12 2018, 01:09 PM Z