[英]How to reduce cpu usage in a c application?
我正在嘗試做一個簡單的服務器應用程序,所以我需要循環直到沒有連接然后再循環,等等...但是當我這樣做時,我得到了50-100%的cpu使用率,而我正在使用互斥體和條件,有什么辦法可以避免在C中使用posix線程(pthreads)? 如果是這樣,請您舉個例子嗎?
沒有看到您的代碼,很難回答,但是聽起來您正在使用忙等待 。 用偽代碼:忙等待:
while (no connection) {
check connection;
}
更好:
while (no connection) {
sleep(100);
check connection;
}
您正在做的事情被稱為繁忙等待。這不是一個好主意。 如果您正在等待套接字事件,請改用select函數。
繁忙的等待永遠不是一個好的解決方案。 如果使用select,則當給定文件描述符(或套接字)上發生事件時,將喚醒程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.