gpt4 book ai didi

multithreading - 多线程线程控制

转载 作者:行者123 更新时间:2023-12-03 13:18:07 24 4
gpt4 key购买 nike

如何控制程序正在处理的线程数?

我有一个现在可以进行多线程处理的程序,但是一个问题是该程序占用大量内存,并且我必须限制正在运行的线程数,这样我才不会用完内存。主程序经过处理,并在挂起状态下创建一堆句柄和相关联的线程。

我希望程序激活一定数量的线程,当一个线程完成时,它将自动取消挂起下一线程,直到所有工作完成。我该怎么做呢?

曾经有人提到过有关使用线程处理程序的内容,但是我似乎找不到任何有关如何编写一个或确切如何工作的信息。

如果有人可以提供帮助,将不胜感激。

使用Windows和Visual C++。
注意:我不必担心线程访问的传统问题,每个线程都是完全独立的,它更像是批处理,而不是真正的多线程程序。

谢谢,

-法肯

最佳答案

不要显式创建线程。创建一个线程池,请参阅Thread Pools并使用QueueUserWorkItem将您的工作排队。线程池的大小应由可用的硬件线程数(内核数和超线程比例)以及工作项执行的CPU与IO的比例确定。通过控制线程池的大小,您可以控制最大并发线程数。

关于multithreading - 多线程线程控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2170155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com