我正在尝试在Java应用程序中播放mp3。 用户可以单击按钮并更改声音。 声音和切换有效...但是,当用户尝试切换声音时,新歌会在旧歌停止播放之前开始在旧歌上播放大约一秒钟。 我正在尝试使用线程来处理一切。 我的MP3课: 这就是我尝试在主游戏中运行代码的方式。 MP3 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在创建一个微型服务器,该服务器将始终侦听新连接。 服务器将每秒大约30次“唤醒”并向客户端发送更新请求。 客户端将一直处于睡眠状态,直到该被唤醒(由上一个连接建立)并接受请求并启动更新。 因为交换的窗口将一直很小,所以我该如何管理睡眠线程的延迟以更准确地测量睡眠周期?
不,你不能。
您在这里拥有的是2个绝对不同的活动,它们相互耦合。 一个负责定期唤醒,另一个负责更新客户端。 如果唤醒任务等待更新任务完成,则其准确性将受到影响。
您可以做的是通过在服务器中引入某种程度的异步来解决问题。
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
final Runnable notificationTask = new Runnable() {
@Override public void run() {
updater.sendUpdate(); // just *notify* the updater to do an update
}
};
executor.scheduleAtFixedRate(
notificationTask, 0, 33333333, TimeUnit.NANOSECONDS // freakishly accurate :)
);
为什么它不能一直保持清醒? 观察者/可观察模式是否对您有任何帮助?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.