私のREST APIが複数の非同期呼び出しを処理できるかどうかテストしたいと思います。複数のタブでMacシェルカール非同期呼び出し
curl
というスクリプトで、forループで1000回APIを呼び出します。私は同時に5つのタブでこのスクリプトを実行します。
私の質問は、この本当の非同期テストですか、またはターミナルはこれらの呼び出しを同期して実行していますか?
私のREST APIが複数の非同期呼び出しを処理できるかどうかテストしたいと思います。複数のタブでMacシェルカール非同期呼び出し
curl
というスクリプトで、forループで1000回APIを呼び出します。私は同時に5つのタブでこのスクリプトを実行します。
私の質問は、この本当の非同期テストですか、またはターミナルはこれらの呼び出しを同期して実行していますか?
、だから、各端末は、順次コマンドにその呼び出しを実行しますが、各ターミナルウィンドウには独自のプロセスを持っています(アクティビティモニタで見ることができるように)、その他の端末のウィンドウから独立して
5つの端末ウィンドウでは、5つの非同期プロセスが実行されています。
しかし、コマンドやスクリプトを1つの端末内でバックグラウンドで実行することもできます。マルチスレッドを実現します。端末コマンドを実行しているときに、&
文字を追加すると、バックグラウンドで実行するよう端末に指示し、さらにコマンドを待つために端末を戻します。単一の端末で例えば
、のコマンドsleep
を使用してみましょう、バックグラウンドモードでは、5回
私たちは、5つの別々のプロセスが作成されていることを、アクティビティモニタでプロセスリストから見ることができます
前面にバックグラウンド・プロセスをもたらすために、fg
コマンドは、関連するプロで、使用されていますcess id(pid)をコマンドの引数として使用します。