我的服務程式在乙個客戶端接入以後就開乙個接收執行緒,負責接收它的資料。
在此期間客戶機保持和伺服器的連線。
實際執行時,發現這個接收執行緒一執行,cpu利用率達到100%,根本接收不了其他的連線,請問大家怎麼處理接收執行緒的?怎麼改善接收執行緒的效能?
// 接收資料執行緒如下:
dword winapi recvthread(lpvoid lparam)
; char recvbuf[256];
while (true)
else if (ret > 0)
else
if (nrecv == 0)
// 資料讀入成功,做資料處理
printf("successfully receive %d bytes../n"),nrecv);
processdata(recvbuf);
}
} }
printf("recv thread exit with 0../n");
return 0;
} 發表者:xuweiqun
pthread join來接收執行緒的返回引數
pthread join用來等待乙個執行緒的結束。函式原型為 extern int pthread join pthread t th,void thread return 第乙個引數為被等待的執行緒識別符號,也就是thread id。其型別為pthread t。通過呼叫pthread self 函...
串列埠接收執行緒退出與優先順序問題
在evc4除錯模式下,除錯串列埠時出現乙個問題 串列埠有乙個接收執行緒,在應用退出時,總是不能正常退出。分析原因 從現象上來看,是執行緒因為呼叫waitcommevent 進入等待狀態後,應用在退出時呼叫terminatethread 因為執行緒已經被suspend而不能退出。通過remote pr...
wince下比較好用的串列埠接收執行緒
cceseries ceseries cceseries lparam dword evtmask byte readbuf null 讀取的位元組 dword actualreadlen 0 實際讀取的位元組數 dword willreadlen dword dwreaderrors comsta...