私は、javaで指定された時間だけメソッド/関数を実行する簡単な方法を探しています。メソッド/関数を指定された時間実行する
for(3 secs){
x();
}
この方法は実装が簡単で、パフォーマンスも良好でなければなりません。アーロンの答えため
私は、javaで指定された時間だけメソッド/関数を実行する簡単な方法を探しています。メソッド/関数を指定された時間実行する
for(3 secs){
x();
}
この方法は実装が簡単で、パフォーマンスも良好でなければなりません。アーロンの答えため
long startTime = System.currentTimeMillis();
while(System.currentTimeMillis() - startTime <= 3000){
x();
}
+1、効率/性能のためのみの比較を残して、ループの外側の加算/減算を移動させる代わりに、long finishTime = System.currentTimeMillis() + 3000
を用いました。
ただし、x()を入力してからx()を実行すると時間がかかる場合は、ループ全体が目的の時間より長く実行されることがあります。 x()が長さの場合、その中に停止条件のチェックを追加することもできます。
Iは、効率/パフォーマンスのために、ループの外算術を移動する
long finishTime = System.currentTimeMillis()+3000;
while(System.currentTimeMillis() <= finishTime){
x();
}
にしてください
void run (Runnable task , long milliseconds) throws Exception
{
new Thread ()
{
public void run ()
{
while (true)
{
task . run () ;
}
}
} . start () ;
Thread . sleep (milliseconds) ;
System . exit (0) ;
}
タスクが長いalloted時間以上かかる場合でも、これは動作します。
+1:後に何かしたい場合、いいですね。 ;) –
x()が4秒かかるとどうなりますか? – adatapost
タスクを定期的に実行したい場合は、good ol Timerクラスを使用できます。 – Adrian
x()を3秒間繰り返し実行するか、またはxが3秒間戻ってきたらブロックを終了しますか? – Sumit