[解決済み] Javaで遅延を発生させるには?
2022-03-19 02:15:43
質問
私は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");
}
関連
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
JQuery DataTable 详解
-
java 例外。Javaツールの初期化
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
jd-gui Java Exceptionが発生しました。
-
SpringBootApplication を型解決できない。
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
IDEA パッケージステートメントの欠落
-
テストが見つかりませんでした