Farz edelim ki bir java.util.concurrent.BlockingQueue öğesinden öğe çekme ve bunları işleme.ZamanlanmışExecutorService değişken gecikmeli
public void scheduleTask(int delay, TimeUnit timeUnit)
{
scheduledExecutorService.scheduleWithFixedDelay(new Task(queue), 0, delay, timeUnit);
}
nasıl sıklık dinamik olarak değiştirilebilir eğer görevi yeniden planlayın zamanlama/olabilir?
- fikri veri güncellemeleri akışını almak ve kullanıcının
Neden engelleme sırasını kullandığınız açık değil. Eğer sıra boşsa . Planlanan görevinizin engelleneceğini düşünüyorum. niyetin bu mu? Bu muhtemelen görev zamanlayıcı zamanlamasını karıştırır. –
ArrayBlockingQueue uygulamasını threadafe olması, FIFO siparişine saygı duyması ve sınırlandırılması gerektiğinden seçtim. Görev engellese bile, görev zamanlamasının karıştırılmaması gerekir mi? – parkr
Bir BlockingQueue uygulaması kullanmakta haklısınız (aslında ScheduledThreadPoolExecutor bir tane dahili olarak kullanıyor). Ancak, güncellemelerinizi bir zamanlayıcı kullanarak GUI'ye neden yayıyorsunuz? Neden gerçek zamanda yapmıyorsunuz? Çok fazla güncelleme var mı? Swing iplik eğirme hakkında endişeli misiniz? – Adamski