繁体   English   中英

您可以控制Java线程的延迟吗?

Can you control the latency for java threads?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在创建一个微型服务器,该服务器将始终侦听新连接。 服务器将每秒大约30次“唤醒”并向客户端发送更新请求。 客户端将一直处于睡眠状态,直到该被唤醒(由上一个连接建立)并接受请求并启动更新。 因为交换的窗口将一直很小,所以我该如何管理睡眠线程的延迟以更准确地测量睡眠周期?

2 个回复

不,你不能。

您在这里拥有的是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 :)
    );

为什么它不能一直保持清醒? 观察者/可观察模式是否对您有任何帮助?

1 Java线程以延迟结尾

我正在尝试在Java应用程序中播放mp3。 用户可以单击按钮并更改声音。 声音和切换有效...但是,当用户尝试切换声音时,新歌会在旧歌停止播放之前开始在旧歌上播放大约一秒钟。 我正在尝试使用线程来处理一切。 我的MP3课: 这就是我尝试在主游戏中运行代码的方式。 MP3 ...

3 如何确保线程在Java中不会延迟?

我编写了一个多线程程序,该程序同时具有两个到四个线程。 线程之一是时间关键线程,它将每500毫秒调用一次,不允许延迟超过10毫秒。 但是,当其他线程有更多的负载时,我发现大约发生了两毫秒的延迟。 (打印时间戳以显示该时间戳)因此,我担心长时间运行后,它将延迟10毫秒以上(检查时间戳除外), ...

4 Java线程:线程之间的ExecutorService延迟

我知道使用sleep方法延迟线程的传统方法。 我的问题据说我有以下几点: 有没有办法说使用ExecutorService类在不使用sleep方法的情况下在每个线程之间有延迟? 我的意思是ExecutorService类中有一个方法用于此目的吗? ...

5 在Java中控制线程

我正在尝试创建一些东西,其中我必须提供两个可控线程,除了主要我可以在其中启动,停止,暂停,恢复这些线程的主线程外,这些线程是我在抽象类中提供的。 这些线程将在后台执行一些专用功能。 目前,我已经在其中创建了启动和停止功能,但是我遇到了一个问题,即在第二次启动它后调用停止功能时,它不会停止 ...

9 Java:GUI与控制器线程通信

我正在为大学项目使用Java开发游戏。 游戏首先必须使用文本界面,然后才需要添加GUI。 我有一个运行游戏逻辑并更新游戏模型的线程,还有一个单独的线程,该线程具有主要功能,实例化了JFrame,然后在其中根据游戏状态切换面板(控制器告诉gui哪个帧以使用setPage方法显示)。 ...

10 通过Java中的线程控制方法的执行

我需要两个类,一个类有两个方法,每个方法需要一段时间才能完全执行。 向第二类提供信息,该信息将决定第一类中两个方法中的哪一个将执行。 但是重要的是,如果第二个类(将在其自己的线程中同时执行)决定两个方法中的另一个应该执行,则第一个类将直接执行另一个方法而不必等待首先完成。 如果类A有两 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM