我编写了一个使用多线程同时加载图像的应用程序,但我觉得有提高应用程序质量的空间。我想知道如何有效地使用thread :: hardware_concurrency()函数而不是这样做:
std::thread* bmpThread = new std::thread[1000];
似乎每当我使用thread :: hardware_concurrency()时,我得到的返回值大约为16。但是,用户可以一次选择16个以上的图像,这个问题的理想解决方案是什么?
答案 0 :(得分:1)
也许您可以使用ThreadPool重用旧线程而不是每次都创建新线程:)这样,如果您的程序被重载,则只创建适当数量的线程(使用pool.schedule(..)而不是创建新线程)