しばらく(真)と待機()またはスレッドの違いは何であるの参加()

aguagu :

私は生きているメインスレッドを維持したいです。私は3つのオプションを発見した、と私は1つが最適なのだろうか。どのような違いがあり、なぜ?

その中で任意の消耗リソースはありますか?

  1. 一方、(TRUE){}

  2. thread.join()

  3. たCountDownLatch(1).await()

私はそれらを試みたが、それらはうまくいきました。

while(true){}

thread.join()

CountDownLatch(1).await()
GhostCat敬礼モニカC.:

ここに:

while(true){}

「熱い」待機を行います。それは意味:あなたのCPUは何もしない、100%で回転します。あなたは本当にラッキーであれば多分、多分、JVMがいることを検出し、そのようにCPUサイクルを燃やさないですることができます。

()参加のために、私たちが見つけ、一方:

我々は、スレッドのjoin()メソッドを呼び出すと、呼び出し元のスレッドが待機している状態になります。これは、参照されたスレッドが終了するまで待機している状態のまま。

(このことからチュートリアル

だから、より健康的なアプローチのように()の音に参加。await()同様の方法で動作するはずです。

これらの2つの方法の欠点:それはおそらく良いアイデアは「しばらく真」ループにそれらを置くかもしれないので、彼らは、割り込みをスレッド化に反応します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222636&siteId=1