socket 接收執行緒實現(帖子)

2021-04-15 12:58:45 字數 628 閱讀 6912

我的服務程式在乙個客戶端接入以後就開乙個接收執行緒,負責接收它的資料。  

在此期間客戶機保持和伺服器的連線。  

實際執行時,發現這個接收執行緒一執行,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...