因此,我想尝试一下Timer和TimerTask类。
30秒过后,我能够执行一行代码。我现在一直想做的是让这行代码执行5分钟。
这是我最初尝试的
public static void main(String[] args)
{
for ( int i = 0; i <= 10; i ++ )
{
Timer timer = new Timer();
timer.schedule( new TimerTask()
{
public void run()
{
System.out.println("30 Seconds Later");
}
}, 30000
);
}
}
我在for循环中使用了数字10,以查看timer.schedule在循环的下一次迭代期间是否还要再等待30秒。
知道我应该怎么做吗?我尝试将schedule方法与传入参数period一起使用,但这只是使其重新执行而从未停止过。
您遇到的问题是,计划的Timer
运行在不同的线程上-
也就是说,for
循环的下一次迭代在计划后立即开始运行,而不是在30秒后开始。看起来您的代码一次全部启动了10个计时器,这意味着它们应该在30秒后一次全部(大约)打印。
尝试使用schedule
(带有第三个参数的)循环版本时,您处在正确的轨道上。如您所述,这不是您想要的,因为它可以无限期运行。但是,Timer
确实 有一种cancel
方法可以防止后续执行。
因此,您应该尝试类似的方法:
final Timer timer = new Timer();
// Note that timer has been declared final, to allow use in anon. class below
timer.schedule( new TimerTask()
{
private int i = 10;
public void run()
{
System.out.println("30 Seconds Later");
if (--i < 1) timer.cancel(); // Count down ten times, then cancel
}
}, 30000, 30000 //Note the second argument for repetition
);
问题内容: 我有要求在5分钟内运行一会儿循环。我寻找了计时器api,但找不到这样做。任何人都可以为此提供代码摘要。 谢谢 问题答案: 最简单的方法是只检查每次迭代已花费了多少时间。例: 这将运行循环,直到超过5分钟为止。 笔记: 当前循环迭代将始终完成,因此在实践中它将始终运行5分钟以上。 对于此应用程序而言,它比之更合适,因为如果调整了计算机的系统时钟,后者将发生变化,从而使计算工作中断。 感谢
Debian 开发人员配置了几种在不同硬盘和不同体系结构上的分区程序。下面是一个适合你的结构的程序 列表。 partman 推荐的 Debian 分区工具。这个小而全的工具也可以创建文件系统 (在 Windows 下的说法是 "格式化" speak) 。 以及联系分区至挂接点。 fdisk 原始版本的 Linux 磁盘分区工具,对于高手很好用;请阅读 fdisk 手册页 . 这里注意如果你的机器上
Debian 开发人员配置了几种在不同硬盘和不同体系结构上的分区程序。 下面是一个适合你的结构的程序列表。 partman 推荐的 Debian 分区工具。这个小而全的工具可以修改分区大小,创建文件系统 以及联系分区至挂接点。 cfdisk A simple-to-use, full-screen disk partitioner for the rest of us; read the cfdi
Debian 开发人员配置了几种在不同硬盘和不同体系结构上的分区程序。 下面是一个适合你的结构的程序列表。 partman 推荐的 Debian 分区工具。这个小而全的工具可以修改分区大小,创建文件系统 以及联系分区至挂接点。 cfdisk A simple-to-use, full-screen disk partitioner for the rest of us; read the cfdi
我试图在scala jdbc程序上运行分析查询,如下所述。 该表位于postgres上,我正在创建程序的jar,并从命令行运行它,如下所示。 代码没有给出任何错误,但我看到resultset对象的结果为false,如下所示: 查询不会失败,因此在运行时没有异常。给定的表也存在于数据库中,它们包含数据。但是我打印了结果集对象,看到布尔值。这意味着分析查询失败了,还是应该以其他方式运行?可以让我知道我
问题内容: 我看了一些其他的SO问题,没有找到任何解决我问题的方法…我有一个Main.java文件(如下)和一个OthelloLib.jar文件,没有关联的源文件。 运行失败,并 还有更多错误。SimplePlayer和BetterPlayer在jar中定义。我如何告诉Java这个罐子?这个命令:不会引起错误,但是我仍然不知道如何运行程序。如果我运行,java会抱怨: 但是TimeoutExcep