私はThread.sleepでwhileループを結合したいので、コードはJavaのすべてのナノ秒またはマイクロ秒で実行されます。誰か助けてくれますか?私の悪い英語を申し訳ありません、私はオランダ語です。JavaでThread.sleepとwhileループを組み合わせるにはどうすればいいですか?
答えて
マイクロ秒でスリープ状態にはならず、時間を確認するだけで数ナノ秒かかることがあります。
マイクロ秒を待つ場合は、ビジー状態を待つ必要があります。注:これは100%CPUを使用します。あなたがあれば、コードは
long delayNS = micros * 1000;
long next = System.nanoTime();
while(running) {
next += delayNS;
while (next > Systen.nanoTime()) { }
// do something.
}
のために実行されますどのくらいの時間を考慮に入れる場合があります
while(running) {
long end = System.nanoTime() + micros * 1000;
while (end > Systen.nanoTime()) { }
// do something.
}
ので、コードは、すべてを実行します... Javaでマイクロ秒
コードには時間がかかりますが、イベント間に一定の間隔があります。
注:それはちょうど最も近いミリ秒にnanos
を丸めるしかし
Thread.sleep(long millis, int nanos)
があります。
あり、サブミリ秒とすることができるLockSupport.parkNanos(n)
あるが(さらには1ナノ秒の遅延のために)典型的には約25マイクロ秒
16マイクロ秒を取ることができるThread.yield()
あり、最小であるが、それはまた取ることができますもっと長い。
実行中はどういう意味ですか?そして、マイクロは1の値を持っているのは正しいのですか? –
@DaniëlvanderZwanフラグを使用して、ループ実行時間を決定することができます。 1マイクロ秒の間隔が必要な場合は、「マイクロ秒= 1」 –
という値を使用することができます。これはCPUサイクルに影響することになるという答えに言及する価値があります。実際にはコードは常に実行中です。エグゼクティブ間のタイミング) –
これはThreadオブジェクトの中で実行できます。実行メソッドではtry catchの動作でwhileを置くことができます。
@Override
public void run()
{
while (true) {
try
{
for (int cont = 0; cont < numberOfRequests; cont++)
{
new GetRequestMethod(url, httpClient, defaultRequestConfig, logOption).start();
}
LOG.log(Level.INFO, "\n---------------Send REQUEST " + numberOfRequests + "---------------\n");
}
catch (OutOfMemoryError m)
{
LOG.log(Level.SEVERE, "\n\n\n\n\n\n\n\n\n\nMemory Critical Error: " + m.getMessage() + "\n\n\n\n\n\n\n\n\n\n", m);
sleep(TIME_SLEEP_EXCEPTION);
renewManager();
}
catch (Throwable t)
{
LOG.log(Level.SEVERE, "\n\n\n\n\n\n\n\n\n\nCritical Error!\n", t);
sleep(TIME_SLEEP_EXCEPTION);
renewManager();
}
}
}
睡眠方法:
private void sleep(int time)
{
try
{
Thread.sleep(time);
}
catch (InterruptedException e)
{
LOG.log(Level.SEVERE, "\n\n\n\n\n\n\n\n\n\nSleeping Critical Error: " + e.getMessage() + "\n\n\n\n\n\n\n\n\n\n", e);
}
- 1. ループのネスト - 特定の組み合わせを無視するにはどうすればよいですか?
- 2. whileループでPHP変数を組み合わせる
- 3. 対話型プロンプトをPythonでargparseと組み合わせるにはどうすればいいですか?
- 4. MariaDBでCONCAT()とWHEREを組み合わせるにはどうすればいいですか?
- 5. iPhoneでアーティストとファンのツイートを組み合わせるにはどうすればいいですか?
- 6. Reactでemojioneとmarkdownを組み合わせるにはどうすればいいですか?
- 7. ffmpegで1オーディオと1画像を組み合わせるにはどうすればいいですか
- 8. Googleビジュアライゼーションで数字とパターンのフォーマッターを組み合わせるにはどうすればいいですか?
- 9. AlamofireとAEXMLまたはSWXMLHASHを組み合わせるにはどうすればいいですか
- 10. CommonJS - $ namespaceにjqueryとjquery-pluginを組み合わせるにはどうすればいいですか?
- 11. ツールバーとTabLayoutを横向きに組み合わせるにはどうすればいいですか?
- 12. CheckingFuelMonadとHooplのStateモナドを組み合わせるにはどうすればいいですか?
- 13. stat_ecdfとgeom_ribbonを組み合わせるにはどうすればいいですか?
- 14. nockoutjsのスロットリングとサブスクリプションを組み合わせるにはどうすればいいですか?
- 15. DataTriggerとEventTriggerを組み合わせるにはどうすればいいですか?
- 16. eclipseのホットキーをcontrol + sと組み合わせるにはどうすればいいですか?
- 17. import allと他のものを組み合わせるにはどうすればいいですか?
- 18. VimとPydictionのオートコンプリート機能を組み合わせるにはどうすればいいですか?
- 19. ボタンを入力と組み合わせるにはどうすればいいですか?
- 20. 辞書をPythonの同じキーと組み合わせるにはどうすればいいですか?
- 21. Silhouette-4.0.X UserAwareActionとキャッシュアクションを組み合わせるにはどうすればいいですか?
- 22. ファクトリパターンをコードの柔軟性と組み合わせるにはどうすればいいですか
- 23. Perlのsplitコマンドと空白のトリミングを組み合わせるにはどうすればいいですか?
- 24. Swiftソート方法とRealmコンテナを組み合わせるにはどうすればいいですか?
- 25. HTMLセレクタをSwitch文と組み合わせるにはどうすればいいですか?
- 26. play frameworkとangular2を組み合わせるにはどうすればいいですか?
- 27. 3つのセレクタをa:hoverタグと組み合わせるにはどうすればいいですか?
- 28. RegularExpressionValidatorコントロールとRequiredFieldValidatorを組み合わせるにはどうすればいいですか?
- 29. Tomcat 5.5との組み合わせでログバックアクセスを使用するにはどうすればよいですか?
- 30. Rubyで月と年の組み合わせを比較するにはどうすればよいですか?
あなたは何を試してみましたか?これを試みるためにあなたが書いたコードをいくつか見せてください。これは無料のコーディングサービスではありません – ja08prat
あなたの持つ困難は何ですか?実際には 'while'ループの中で' Thread.sleep() 'を呼び出すことができます。うまくいかないものを試してみたら、コードを提示してください。それ以外の場合は、ここで質問をする前に自分で解決してみてください。 –
私はこれを試しました: 'while(something){Thread.sleep(0,1000); // tryとcatchを使って何かした}}プログラムをフリーズするたびに、そのウィンドウを閉じなければなりません。タスクマネージャー。 –