1,通过 top命令查看占用过高的进程ID号.
这里占用高的进程是21765
2, 输入 ps -mp 21765 -o THREAD,tid,time
看到占用cpu过高的是21776号线程
再输入 pstack 21765 可以输出当前在运行的所有线程
查看(LWP 21776) 线程:
由此可见这里的 void ReceiveUDPDataThread::run() 函数就是占用高的线程调用的.
而且一直在调用 recvfrom. 说明这里没做错误处理. 要么当收到数据为-1时没sleep或是应该退出.