我有一个关于在一定延迟后调用方法的问题。
我想exampleFunction()
在延迟大约 10 秒后调用 Java 方法。我在网上寻找了解决方案,并遇到了ScheduledThreadPoolExecutor()
. 所以我使用了这个,但问题是,一旦函数在 10 秒后运行,它就不会从线程中退出。有什么办法可以退出线程吗?或者我可以ScheduledThreadPoolExecutor()
在当前线程上运行而不是创建一个新线程吗?
class Test {
...
exampleFunction();
...
public void exampleFunction() {
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.schedule(new Runnable() {
public void run() {
...do something here...
}
}, 10, TimeUnit.SECONDS);
}
}
那么在 exampleFunction 延迟 10 秒后运行后,我有什么办法可以退出这个线程?或者我可以ScheduledThreadPoolExecutor
使用当前线程而不是创建一个新线程吗?
还是有另一种方法可以解决这个问题?我希望能够exampleFunction()
在当前线程上运行 10 秒后,而不是创建一个新线程。
编辑:我认为这可能不是线程问题。我仍在试图找出问题所在。感谢大家的建议和建议。
编辑:我可以将参数传递给 exampleFunction(),然后在 public void run() 中使用它吗?