pthread 사용에 관한 질문이 있습니다.

uni2u의 이미지

pthread를 사용하는데 있어서 질문이 있습니다.

다름이 아니라 다음과 같은 구조에서 pthread 사용을 어떻게 하는 것 입니까?

GetData()에서 List를 구한 후 해당 List에 대하여 Ping 및 Telnet을 하는 구조입니다.

궁금증은 현재 List를 구하고 차례로 Ping(target), Telnet(target)을 하는 것으로 되어 있는데요...

List를 구하고 Ping, Telnet을 pthread로 돌리고 싶습니다.

void AA::GetData()
{
CEquipUtil equipUtil;

for (int i=0; i {
struct viTargetInfo_t *target = mTargetList[i];

try
{
target->m_iCollectTime = time(NULL);

GetList(target, snmpapi);

//thread로 띄우고 싶습니다.
//제 생각으로는 pthread_create(&threads[i], NULL, &Ping, (void *)target); 하면...
Ping(target);

//thread로 띄우고 싶습니다.
//제 생각으로는 pthread_create(&threads[i], NULL, &Telnet, (void *)target); 하면...
Telnet(target);

//여기서 join 하면...
//pthread_join(threads[i], (void **)&status);
}
catch(CCommonException &ce)
{
Log(LOG_INFO, "GetData[%s]:%s\n", target->m_szIPAddress, ce.ToString());
}
}

this->SetGroupCount(mTargetList.size() * GROUP_COUNT);
}

void AA::Ping(struct viTargetInfo_t *target)
{
int viCount = GetVPCount(target->m_szIPAddress);

//viCount 만큼 돌면서 Ping
}

void AA::Telnet(struct viTargetInfo_t *target)
{
int viCount = GetVPCount(target->m_szIPAddress);

//viCount 만큼 돌면서 Telnet
}