1

system()Macで関数ごとに異なるサーバーに ping を実行するためのスレッドをいくつか作成しようとしています。コードは次のようになります。

sprintf(str,"#!/bin/sh\n ping -c 3 -t 3 -o %d.%d.%d.%d \n",dataIP1[0],dataIP1[1],dataIP1[2],dataIP1[3]);
int ret =system(str);  

しかし、サーバーが利用できない場合、最後のスレッドは、このサーバーに ping を実行するのに 3 秒以上かかる必要があることがわかりました。また、このサーバーが利用可能であっても同様です。system()したがって、関数はマルチスレッドをサポートしていないと思います。内部にロッカーがあるようで、同時に別のスレッドで呼び出しても、1つずつしかジョブを実行できません。

それが正しいか?

4

0 に答える 0