gpt4 book ai didi

java - 为一个具有硬限制保证的线程使用执行程序是否有意义?

转载 作者:太空宇宙 更新时间:2023-11-04 09:04:04 27 4
gpt4 key购买 nike

我需要一个后台线程不断地做一个 Action , hibernate X 秒然后做 Action 等等。
run 方法基本上是这样的:

while(!isInterrupted()){  
//do something
Thread.sleep(10);
}

我的问题是:

  1. 在这种情况下使用执行器有意义吗?因为我不是产生线程,甚至在这种情况下使用执行器(单个线程)更好?
  2. 此外,如果我想保证线程进入 ,请执行
    something
    恰好在 10 秒内完成,是否可以通过使用只是一个自定义线程或更多通过执行者保证?我的意思是,如果我有 10 秒的硬性限制 来执行某项操作,我该怎么做才能达到它?我假设代码在 do something 中返回的时间可能会因调度等原因而波动。我怎么能得到这样的保证?

最佳答案

如果您只使用一个像您一样永远运行的任务的线程,那么您可以使用当前的逻辑。

但只有当您有一些小任务需要运行时,才有使用 SingleThreadPool 的意义。

How could I get such a guarantee?

从操作系统端(Linux 或 Windows)没有这样的保证,线程会在恰好 10 秒从 sleep 中返回。尝试增加线程优先级,但这也不能保证有效。

你的逻辑不应该依赖于如此艰难的 IMO 时机。

关于java - 为一个具有硬限制保证的线程使用执行程序是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14951103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com