[英]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.