gdb运行一个最简单的raknet程序,断点以后,敲入 info threads,可以看到有三个线程在跑
除了线程1的主线程外,还有其他两个线程,干什么的呢?由于只调用了一个startup函数,进入startup函数发现如下代码
#if !defined(__native_client__) && !defined(WINDOWS_STORE_RT)
for (i=0; i<socketDescriptorCount; i++)
{
if (socketList[i]->IsBerkleySocket())
((RNS2_Berkley*) socketList[i])->CreateRecvPollingThread(threadPriority);
}
#endif
errorCode = RakNet::RakThread::Create(UpdateNetworkLoop, this, threadPriority);
这两处创建了线程。但是有一堆的现在条件,打调试信息,看看是否走到这里
在以上的语句中分别打入pritf语句后,在起程序,发现如下