Eşitleme Nesneleri
eşitleme nesnesi, birden çok iş parçacığının yürütülmesini koordine etmek bekleme işlevlerinden birinde tanıtıcısı belirtilebilen bir nesnedir. Birden fazla işlem, aynı eşitleme nesnesi için bir tanıtıcıya sahip olabilir ve bu da işlemler arası eşitlemeyi mümkün hale getirir.
Aşağıdaki nesne türleri yalnızca eşitleme için sağlanır.
Tür | Açıklama |
---|---|
Olay | Bir veya daha fazla bekleyen iş parçacığına bir olayın gerçekleştiğini bildirir. Daha fazla bilgi için bkz. Olay Nesneleri. |
Mutex | Bir kerede yalnızca bir iş parçacığına sahip olabilir ve iş parçacıklarının paylaşılan bir kaynağa birbirini dışlayan erişimi koordine etmesini sağlar. Daha fazla bilgi için bkz. Mutex Objects. |
Semafor | Paylaşılan kaynağa aynı anda erişen iş parçacığı sayısını sınırlayarak sıfır ile en yüksek değer arasında bir sayıyı korur. Daha fazla bilgi için bkz. semafor nesneleri . |
Beklenebilir süreölçer | Belirtilen sürenin geldiğini bir veya daha fazla bekleyen iş parçacığına bildirir. Daha fazla bilgi için bkz. Beklenebilir Zamanlayıcı Nesneleri. |
Diğer kullanımlar için kullanılabilir olsa da, eşitleme için aşağıdaki nesneler de kullanılabilir.
Nesne | Açıklama |
---|---|
Bildirimi değiştir | FindFirstChangeNotification işlevi tarafından oluşturulan bu işlevin durumu, belirtilen bir dizin veya dizin ağacında belirli bir değişiklik türü gerçekleştiğinde işaretlenmek üzere ayarlanır. Daha fazla bilgi için bkz. Dizin Değişikliği Bildirimleri alma. |
Konsol girişi | Konsol oluşturulduğunda oluşturulur. Konsol girişine tanıtıcı, CONIN$ belirtildiğinde CreateFile işlevi veya GetStdHandle işlevi tarafından döndürülür. Konsolun giriş arabelleğinde okunmamış giriş olduğunda durumu işaretlenmek üzere ayarlanır ve giriş arabelleği boş olduğunda işaretsiz olarak ayarlanır. Konsollar hakkında daha fazla bilgi için bkz. Character-Mode Uygulamalar |
İş | CreateJobObject işlevi çağrılarak oluşturulur. Belirtilen iş sonu süresi sınırı aşıldığından, tüm işlemleri sonlandırıldığında iş nesnesinin durumu işaretlenmek üzere ayarlanır. İş nesneleri hakkında daha fazla bilgi için bkz. İş Nesneleri . |
Bellek kaynağı bildirimi | CreateMemoryResourceNotification işlevi tarafından oluşturulur. Fiziksel bellekte belirtilen bir değişiklik türü oluştuğunda durumu işaretlenmek üzere ayarlanır. Bellek hakkında daha fazla bilgi için bkz. Bellek Yönetimi. |
İşlem | CreateProcess işlevi çağrılarak oluşturulur. İşlem çalışırken durumu işaretsiz olarak ayarlanır ve işlem sonlandırıldığında sinyal olarak ayarlanır. İşlemler hakkında daha fazla bilgi için bkz. İşlemler ve İş Parçacıkları. |
İplik | CreateProcess, CreateThreadveya CreateRemoteThreadişleviyeni bir iş parçacığı oluşturulduğunda oluşturulur. İş parçacığı çalışırken durumu işaretsiz olarak ayarlanır ve iş parçacığı sonlandırıldığında işaretlenmek üzere ayarlanır. İş parçacıkları hakkında daha fazla bilgi için bkz. İşlemler ve İş Parçacıkları. |
Bazı durumlarda, eşitleme nesnesi olarak bir dosya, adlandırılmış kanal veya iletişim cihazı da kullanabilirsiniz; ancak bu amaçla kullanımları önerilmez. Bunun yerine, zaman uyumsuz G/Ç kullanın ve ÇAKıŞAN yapısında ayarlanan olay nesnesini bekleyin. Aynı dosyada, adlandırılmış kanalda veya iletişim cihazında birden çok eşzamanlı çakışan işlem gerçekleştirildiğinde ortaya çıkabilecek karışıklık nedeniyle olay nesnesini kullanmak daha güvenlidir. Bu durumda, nesnenin durumunun işaret edilmesine hangi işlemin neden olduğunu bilmenin hiçbir yolu yoktur.
Dosyalar, adlandırılmış kanallar veya iletişimler üzerindeki G/Ç işlemleri hakkında ek bilgi için bkz. eşitleme ve çakışan giriş ve çıkış .