[英]get ScheduledExecutorService to change a variable to 3 different values
我正在執行任務,要求我在Java上制作一個接受多個客戶端的服務器程序。 該服務器程序除了模擬交通信號燈外,不會做其他任何事情。 將客戶端連接到服務器程序不是我的問題。 但是要擁有某種具有以下屬性的調度程序:
-返回一個字符串,該字符串說“紅色” 5秒鍾,“黃色” 2秒鍾,然后“綠色” 10秒鍾。(重復)
根據連接服務器的時間,您將獲得一種顏色,就好像它是真實的交通信號燈一樣。
我的問題是把我的頭圍繞ScheduledExecutorService。 我不是一個非常有經驗的程序員,所以對此的任何解釋將不勝感激。
如果我的問題很難理解,請原諒。 提前非常感謝您! :)
該鏈接可能顯示如何使用ScheduledExecutorService :
public ThreadLoopRunner(Runnable task, long delayTime, TimeUnit unit, final ThreadFactory tf, Logger logger, String name) {
this.logger = logger;
this.loopName = ( (name != null && !name.trim().isEmpty()) ? name.trim() : null );
this.runner = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory(tf, loopName));
this.taskWrapper = new TaskWrapper(task, loopLock, logger);
this.delayMode = ScheduleDelayMode.FIXED_RATE;
isDefunct = new AtomicBoolean(false);
setDelayTime(delayTime, unit);
}
您可以在以下代碼中找到一些想法(來自code.openhub.net):
public void start() {
multicastService.get().start();
udpService.get().start();
connectionDispatcher.get().addConnectionAcceptor(this, false, "CONNECT", "\n\n");
backgroundExecutor.scheduleWithFixedDelay(incomingValidator,
timeBetweenValidates, timeBetweenValidates,
TimeUnit.MILLISECONDS);
_started = true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.