我尝试通过Mac上的system()
函数创建一些线程来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);
但是我发现如果服务器不可用,那么最后一个线程必须花费超过3秒来ping这个服务器,即使这个服务器可用。所以我想system()
函数不支持多线程。看起来里面有一个储物柜,所以即使你在同一时间在不同的线程中调用它,它也只能逐个完成。
这是对的吗?