Aracılığıyla paylaş


Zaman uyumsuz aracıları

Bir zaman uyumsuz Aracısı (veya yalnızca agent) daha büyük bilgisayar görevlerini çözmek için diğer aracıları zaman uyumsuz olarak çalışır uygulama bileşendir.Bir aracı olarak ayarlanmış bir ömrü olan bir görev olarak düşünün.Örneğin, bir aracı elde edilince bir giriş/çıkış aygıtı (örneğin, klavye, dosya diskte veya ağ bağlantısı) ve başka bir aracı veri verilerin eylemi gerçekleştirebilir okuyabilir.İlk aracı ikinci Aracısı daha fazla veri kullanılabilir olduğunu bildirmek için ileti geçişini kullanır.Eşzamanlılık çalışma zamanı Görev Zamanlayıcısı'nı engellemek ve cooperatively ödeme aracıları etkinleştirmek için etkili bir mekanizma sağlar daha az verimli preemption gerektirmeden.

Aracıları kitaplığı tanımlar concurrency::agent zaman uyumsuz bir aracı temsil eden sınıf.agentsanal bir yöntem bildirir soyut bir sınıf olan concurrency::agent::run.run Yöntem aracısı tarafından gerçekleştirilen görev yürütür.Çünkü run ise, soyut, bu yöntemi her sınıfta öğesinden türetilmeli uygulamalısınız agent.

Agent yaşam döngüsü

Aracıları ayarlanmış bir ömrü vardır.Concurrency::agent_status numaralandırma aracı çeşitli durumlarını tanımlar.Aşağıdaki resimde nasıl aracıları bir durumdan diğerine ilerleme gösteren bir durum diyagramıdır.Bu çizimde, düz çizgiler uygulamanızdan çağrı yöntemlerini gösterir; noktalı çizgiler, çalışma zamanı adlandırılan yöntemler gösterirler.

Aracı durumu diyagramı

Aşağıdaki tabloda, her iki durumda da açıklar agent_status numaralandırma.

Aracı durumu

Description

agent_created

Aracısı yürütme için planlanan değil.

agent_runnable

Çalışma zamanı, Yürütme Aracısı zamanlama.

agent_started

Aracısı başlatıldı ve çalışıyor.

agent_done

Aracı tamamlandı.

agent_canceled

Agent girdiği önce iptal edildi started durumu.

agent_createdbir Aracısı'nın başlangıç durumu olan agent_runnable ve agent_started active Devletleri ve agent_done ve agent_canceled terminal durumlarıdır.

Use concurrency::agent::status yöntemi geçerli durumunu almak için bir agent nesnesi.Ancak status eşzamanlılık güvenli bir yöntemdir, zaman Aracısı durumunu değiştirebilirsiniz status yöntemini döndürür.Bir aracı gibi olabilir agent_started aradığınızda, durumu status yöntemi, ancak taşınabilir agent_done hemen sonra durum status yöntemini döndürür.

Yöntemleri ve özellikleri

Aşağıdaki tabloda ait önemli yöntemlerden bazılarını gösteren agent sınıfı.Tüm hakkında daha fazla bilgi için agent sınıf yöntemleri için bkz: Agent sınıfı.

Method

Description

Başlat

Zamanlamaları agent nesne için yürütme ve ayarlar agent_runnable durumu.

Çalıştır

Tarafından gerçekleştirilmesi gereken bir görev yürüten agent nesnesi.

Bitti

Bir aracı taşır agent_done durumu.

iptal etme

Bu yöntem Aracısı başlatılmadıysa, Yürütme Aracısı'nın iptal eder ve ayarlar agent_canceled durumu.

durum

Geçerli durumunu alır agent nesnesi.

bekleme

Bekler agent girmek için nesne agent_done veya agent_canceled durumu.

wait_for_all

Tüm sağlanan bekler agent girmek için nesneleri agent_done veya agent_canceled durumu.

wait_for_one

En az biri sağlanan için bekler agent girmek için nesneleri agent_done veya agent_canceled durumu.

Aracı nesnesi oluşturduktan sonra çağrı concurrency::agent::start çalıştırılmak üzere zamanlamak için yöntem.Çalışma zamanı çağrıları run sonra Aracısı zamanlar ve ayarlar bir yöntem agent_runnable durumu.

Çalışma zamanı, zaman uyumsuz aracıları tarafından atılan istisnalar yönetmez.Özel durum işleme ve aracıları hakkında daha fazla bilgi için bkz: Özel durum işleme eşzamanlılık çalışma zamanında.

Örnek

Temel bir aracıya dayalı uygulamasının nasıl yaratılacağını gösteren bir örnek için bkz: İzlenecek yol: Agent tabanlı bir uygulama oluşturma.

Ayrıca bkz.

Kavramlar

Zaman uyumsuz aracıları kitaplığı