簡體   English   中英

C ++多線程:管理線程

[英]C++ multithreading: managing threads

我有一個N個工作的池,我想有一個M(= CPU數量)線程的恆定負載。 如何在C ++中做到這一點?

我已經知道C ++線程庫的基礎知識。 最簡單的方法是排隊M個工作,然后等待所有工作完成。 然后排隊另外M個工作。 只要還有工作,就這樣做。

只要每個作業/線程花費大約相同的時間,此簡單方法就可以正常工作。 如果不是這種情況,很容易發生一個長線程仍在工作而其他所有線程都已完成的情況。 因此,僅裝載了M個CPU之一。

所以我需要一種線程管理。 不必等待所有線程,而是必須不斷檢查正在運行的線程數,並在必要時加入一個新線程。

在C ++中是否已經實現了類似的功能? 否則,實現這種管理器的最簡單/最聰明的方法是什么?

所以我需要一種線程管理。 不必等待所有線程,而是必須不斷檢查正在運行的線程數,並在必要時加入一個新線程。

在C ++中是否已經實現了類似的功能?

英特爾線程構建模塊庫中有一個任務計划程序,任務計划程序可以高效地將用戶任務負載均衡到可用CPU上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM