[解決済み] Javaで遅延を発生させるには?
2022-03-01 05:27:48
質問
私はJavaで何かをしようとしています。私は、whileループで何秒か待つ/遅延させる何かが必要です。
while (true) {
if (i == 3) {
i = 0;
}
ceva[i].setSelected(true);
// I need to wait here
ceva[i].setSelected(false);
// I need to wait here
i++;
}
ステップシーケンサーを作りたいのですが、Javaは初めてです。何か提案はありますか?
どのように解決するのですか?
一時停止したい場合は
java.util.concurrent.TimeUnit
:
TimeUnit.SECONDS.sleep(1);
1秒間スリープさせるか
TimeUnit.MINUTES.sleep(1);
ちょっとだけ寝ること。
これはループなので、固有の問題であるドリフトが発生します。コードを実行してからスリープするたびに、例えば1秒ごとに実行する場合よりも少しずれてしまうことになります。これが問題なら
sleep
.
さらに
sleep
は、制御に関してはあまり柔軟ではありません。
1秒ごとに、あるいは1秒遅れでタスクを実行する場合
強く
をお勧めします。
ScheduledExecutorService
と、どちらかの
scheduleAtFixedRate
または
scheduleWithFixedDelay
.
例えば、このメソッドを実行するには
myTask
を1秒ごとに実行します(Java 8)。
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}
そして、Java 7では。
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
myTask();
}
}, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}
関連
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Androidで遅延後にメソッドを呼び出す方法
-
[解決済み] JavaScriptのループにディレイを追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] tempとは何ですか、またjavaにおけるtempの用途は何ですか?
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました