Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Zaman uyumsuz aracı (veya yalnızca aracı), daha büyük bilgi işlem görevlerini çözmek için diğer aracılarla zaman uyumsuz olarak çalışan bir uygulama bileşenidir. Bir aracıyı, belirli bir yaşam döngüsüne sahip bir görev olarak düşünün. Örneğin, bir aracı bir giriş/çıkış cihazından (klavye, disk üzerindeki bir dosya veya ağ bağlantısı gibi) verileri okuyabilir ve başka bir aracı kullanılabilir duruma geldiğinde bu veriler üzerinde eylem gerçekleştirebilir. İlk aracı, ikinci aracıya daha fazla veri sağlandığını bildirmek için ileti geçirmeyi kullanır. Eşzamanlılık Çalışma Zamanı görev zamanlayıcı, aracıların daha az verimli önalım gerektirmeden işbirliği içinde engellemesini ve verimini sağlamasını sağlayan verimli bir mekanizma sağlar.
Aracılar Kitaplığı, zaman uyumsuz bir aracıyı temsil etmek için eşzamanlılık::agent sınıfını tanımlar.
agent , eşzamanlılık::agent::run sanal yöntemini bildiren bir soyut sınıftır. yöntemi aracı run tarafından gerçekleştirilen görevi yürütür.
run soyut olduğundan, bu yöntemi öğesinden agenttüretdiğiniz her sınıfta uygulamanız gerekir.
Aracı Yaşam Döngüsü
Aracıların belirli bir yaşam döngüsü vardır. concurrency::agent_status numaralandırması bir aracının çeşitli durumlarını tanımlar. Aşağıdaki çizim, aracıların bir durumdan diğerine nasıl ilerlediğini gösteren bir durum diyagramıdır. Bu çizimde, düz çizgiler uygulamanızdan çağırdığınız yöntemleri temsil eder; noktalı çizgiler çalışma zamanından çağrılan yöntemleri temsil eder.
Aşağıdaki tabloda, numaralandırmadaki agent_status her durum açıklanmaktadır.
| Aracı Durumu | Açıklama |
|---|---|
agent_created |
Aracı yürütme için zamanlanmamış. |
agent_runnable |
Çalışma zamanı aracıyı yürütme için zamanlar. |
agent_started |
Aracı başlatıldı ve çalışıyor. |
agent_done |
Aracı bitti. |
agent_canceled |
Aracı, duruma girmeden started önce iptal edildi. |
agent_created bir aracının ilk durumudur ve agent_runnableagent_started etkin durumlardır ve agent_doneagent_canceled terminal durumlarıdır.
Bir nesnenin agent yöntemini kullanın. Yöntem eşzamanlılık açısından güvenli olsa status da, aracının durumu yöntemin döndürdüğü zamana status göre değişebilir. Örneğin, yöntemini çağırdığınızda agent_started bir aracı durumunda status olabilir, ancak yöntem döndürdüğünden agent_done hemen sonra status duruma taşınmış olabilir.
Yöntemler ve Özellikler
Aşağıdaki tabloda sınıfına ait bazı önemli yöntemler gösterilmektedir agent . Tüm agent sınıf yöntemleri hakkında daha fazla bilgi için bkz . aracı Sınıfı.
| Metot | Açıklama |
|---|---|
| başlangıç | Yürütme için nesnesini zamanlar agent ve duruma ayarlar agent_runnable . |
| Çalıştırın | Nesnesi tarafından gerçekleştirilecek görevi yürütür agent . |
| yapılmış | Aracıyı agent_done duruma taşır. |
| İptal | Aracı başlatılmadıysa, bu yöntem aracının yürütülmesini iptal eder ve duruma ayarlar agent_canceled . |
| durum | Nesnenin geçerli durumunu agent alır. |
| beklemek | nesnenin agent veya agent_done durumuna girmesini agent_canceled bekler. |
| hepsi_için_bekle | Sağlanan agent tüm nesnelerin veya agent_done durumuna girmesini agent_canceled bekler. |
| birini_bekle | Sağlanan agent nesnelerden en az birinin veya agent_done durumuna girmesini agent_canceled bekler. |
Aracı nesnesi oluşturduktan sonra concurrency::agent::start yöntemini çağırarak yürütme için zamanlayın. Çalışma zamanı aracıyı run zamanladıktan ve duruma ayarladıktan agent_runnable sonra yöntemini çağırır.
Çalışma zamanı, zaman uyumsuz aracılar tarafından oluşan özel durumları yönetmez. Özel durum işleme ve aracılar hakkında daha fazla bilgi için bkz . Özel Durum İşleme.
Örnek
Temel aracı tabanlı bir uygulamanın nasıl oluşturulacağını gösteren bir örnek için bkz . İzlenecek Yol: Aracı Tabanlı Uygulama Oluşturma.