C 多執行緒造成CPU佔用率高解決辦法

2021-08-25 02:19:25 字數 1150 閱讀 1018

在c#開發中我們難免會用到多執行緒操作,而且很多時候需要開啟多個執行緒一直監視某個狀態,當執行緒多的時候就會造成cpu記憶體佔用率過高。電腦配置低的根本吃不消。

private void button1_click(object sender, eventargs e)

;th2 = new thread(thread2)

;th3 = new thread(thread3)

;th4 = new thread(thread4)

;th5 = new thread(thread5)

;th1.start();

th2.start();

th3.start();

th4.start();

th5.start();

}public void thread1()

public void thread2()

public void thread3()

public void thread4()

public void thread5()

比如上面這段**,我們先看為執行前cpu的佔用率。

這是很低的,而當我執行上面的**後,一下子就達到了100%。這肯定是不行的。

解決方法:

只要我們上每個執行緒岔開時間執行即可,我們在每一段迴圈中架伊爾thread。sleep(1),讓執行緒休眠等待。看看效果吧。

仍然還是很低,一般的電腦執行起來都毫無壓力。

這是我的一點心得,如有不妥的地方,歡迎指正哦!

Vs Qt執行緒減小cpu佔用率

1 執行緒的功能使不停地傳送資料 2 執行緒中採用的是在run 函式中while迴圈 發現while迴圈一直跑著會是cpu佔用率比較高,為減小cpu佔用率,可以在傳送一次資料後usleep一段時間,但是這種做法有一定的缺陷,就是在sleep的這段時間內如果有資料準備好,可以傳送時就不會不及時。改進為...

Linux下如何檢視高CPU佔用率執行緒

在 linux 下 top 工具可以顯示 cpu 的平均利用率 user,nice,system,idle,iowait,irq,softirq,etc.可以顯示每個 cpu 的利用率。但是無法顯示每個執行緒的 cpu 利用率情況,這時就可能出現這種情況,總的 cpu 利用率中 user 或 sys...

Linux下如何檢視高CPU佔用率執行緒

在 linux 下 top 工具可以顯示 cpu 的平均利用率 user,nice,system,idle,iowait,irq,softirq,etc.可以顯示每個 cpu 的利用率。但是無法顯示每個執行緒的 cpu 利用率情況,這時就可能出現這種情況,總的 cpu 利用率中 user 或 sys...