結果を待つ非同期と同期の違いは何ですか?

JD_

最近、私はJavaでマルチスレッドと非同期プログラミングを学んでいますが、これは紛らわしいと思いました。

私の質問を明確にするために:以下のコードは同等ですか?

  • いいえの場合、なぜですか?私の意見では、最初のスニペットでは、whileループは元のスレッドをビジー状態に保ちます(ブロッキングを意味しますか?)。

  • はいの場合、非同期を適切に使用する方法は?

//asynchronous programing

ExecutorService threadpool = Executors.newCachedThreadPool();
Future<Long> futureTask = threadpool.submit(() -> factorial(number));

while (!futureTask.isDone()) {
    System.out.println("FutureTask is not finished yet..."); 
} 
long result = futureTask.get(); 

threadpool.shutdown();
//synchronous
long result = factorial(number)
セルジュバレスタ

タスクを次々に実行する場合、非同期メソッドを使用することは実際には意味がありません。同期のオーバーヘッドが失われ、処理の終了を待つ必要があります。さらに、アクティブループ使用して終了を待機する場合

while (!futureTask.isDone()) {   // active wait loop
    System.out.println("FutureTask is not finished yet..."); 
} 

システムにさらに負荷を追加します。少なくともwait、他の処理が終了するまで、現在のスレッドを一時停止モードにする方法を使用する必要があります

ただし、とにかく、タスクを次々に実行する場合は、タスクを次々に同期的に呼び出すだけです。

factorial(number));
other processings...

これにより、パフォーマンスを低下させることなく、コードの保守がよりクリーンで簡単になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

非同期操作の結果を待たずに待つにはどうすればよいですか?

分類Dev

非同期/結果を返すのを待つことは約束されていません

分類Dev

Kotlinコルーチンの起動/参加と非同期/待機の違いは何ですか

分類Dev

非同期/待機に関して、通常のforeach演算子とForEachLINQ演算子の違いは何ですか

分類Dev

同期同期と静的同期の違いは何ですか

分類Dev

2つの非同期メソッドのいずれかが結果を返すのを待っています

分類Dev

非同期EFでSaveChangesAsync()を待つことは必須ですか?

分類Dev

非非同期/待機コードでのAsyncLocal <T>の効果は何ですか?

分類Dev

Task.WhenAnyを使用していくつかの異なる非同期操作の結果を待ちます

分類Dev

非同期は結果を解決/拒否しないのを待ちます

分類Dev

NodeJSのマルチスレッドと非同期の違いは何ですか

分類Dev

2つの非同期JavaScript関数の結果を比較するにはどうすればよいですか?

分類Dev

JavaScript非同期関数とWebワーカーの違いは何ですか?

分類Dev

非同期メソッドとスレッドの違いは何ですか?

分類Dev

非同期ジェネレーターとObservablesの違いは何ですか?

分類Dev

非同期タスクとタスクの違いは何ですか

分類Dev

Pythonの非同期とは何ですか?

分類Dev

AppDomainがC#で非同期コールバックを処理し、結果を返すのをどのように待つことができますか?

分類Dev

実行ループの同期入力ソースと非同期入力ソースの違いは何ですか?

分類Dev

非同期タスクを待つことが*できない*場合の標準的なJSプラクティスは何ですか?

分類Dev

Oozie>非同期アクションと同期アクションの違いは何ですか

分類Dev

非同期/待機と結果の混合

分類Dev

違いを待つ同期と非同期メソッドを呼び出しますか?

分類Dev

最後の非同期呼び出しを待つことと、それを返すこととの間に違いはありますか?

分類Dev

Rustでの非同期/待機の目的は何ですか?

分類Dev

ASP.NET Coreで長い非同期操作を待つ場合、考えられる問題は何ですか?

分類Dev

非同期アクションで辞書を待つ正しい方法は何ですか?

分類Dev

現在の関数/スレッドで結果を待たずに非同期タスクを実行するにはどうすればよいですか?

分類Dev

非同期メインを持つことのポイントは何ですか?

Related 関連記事

  1. 1

    非同期操作の結果を待たずに待つにはどうすればよいですか?

  2. 2

    非同期/結果を返すのを待つことは約束されていません

  3. 3

    Kotlinコルーチンの起動/参加と非同期/待機の違いは何ですか

  4. 4

    非同期/待機に関して、通常のforeach演算子とForEachLINQ演算子の違いは何ですか

  5. 5

    同期同期と静的同期の違いは何ですか

  6. 6

    2つの非同期メソッドのいずれかが結果を返すのを待っています

  7. 7

    非同期EFでSaveChangesAsync()を待つことは必須ですか?

  8. 8

    非非同期/待機コードでのAsyncLocal <T>の効果は何ですか?

  9. 9

    Task.WhenAnyを使用していくつかの異なる非同期操作の結果を待ちます

  10. 10

    非同期は結果を解決/拒否しないのを待ちます

  11. 11

    NodeJSのマルチスレッドと非同期の違いは何ですか

  12. 12

    2つの非同期JavaScript関数の結果を比較するにはどうすればよいですか?

  13. 13

    JavaScript非同期関数とWebワーカーの違いは何ですか?

  14. 14

    非同期メソッドとスレッドの違いは何ですか?

  15. 15

    非同期ジェネレーターとObservablesの違いは何ですか?

  16. 16

    非同期タスクとタスクの違いは何ですか

  17. 17

    Pythonの非同期とは何ですか?

  18. 18

    AppDomainがC#で非同期コールバックを処理し、結果を返すのをどのように待つことができますか?

  19. 19

    実行ループの同期入力ソースと非同期入力ソースの違いは何ですか?

  20. 20

    非同期タスクを待つことが*できない*場合の標準的なJSプラクティスは何ですか?

  21. 21

    Oozie>非同期アクションと同期アクションの違いは何ですか

  22. 22

    非同期/待機と結果の混合

  23. 23

    違いを待つ同期と非同期メソッドを呼び出しますか?

  24. 24

    最後の非同期呼び出しを待つことと、それを返すこととの間に違いはありますか?

  25. 25

    Rustでの非同期/待機の目的は何ですか?

  26. 26

    ASP.NET Coreで長い非同期操作を待つ場合、考えられる問題は何ですか?

  27. 27

    非同期アクションで辞書を待つ正しい方法は何ですか?

  28. 28

    現在の関数/スレッドで結果を待たずに非同期タスクを実行するにはどうすればよいですか?

  29. 29

    非同期メインを持つことのポイントは何ですか?

ホットタグ

アーカイブ