本文整理汇总了C++中ThreadPool::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ ThreadPool::Add方法的具体用法?C++ ThreadPool::Add怎么用?C++ ThreadPool::Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ThreadPool
的用法示例。
在下文中一共展示了ThreadPool::Add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestThreadPool
void TestThreadPool()
{
CDynArray<int> result;
{
// Empty:
ThreadPool pool;
pool.Wait(0);
printf("Empty pool pass.\n");
}
{
int N = 8;
ThreadPool pool;
for (int i = 0; i < N; ++i) {
pool.Add(TFunc, (void*)i);
}
pool.Wait(&result);
result.Sort();
for (int i = 0; i < N; ++i) {
GLASSERT(result[i] == i);
}
printf("Basic test pass.\n");
}
{
for (int pass = 0; pass < 2; ++pass) {
int N = 100;
ThreadPool pool;
for (int i = 0; i < N; ++i) {
pool.Add(TFunc, (void*)i);
}
pool.Wait(&result);
result.Sort();
for (int i = 0; i < N; ++i) {
GLASSERT(result[i] == i);
}
printf("Serial stress %d pass.\n", pass);
}
}
{
static const int P = 2;
ThreadPool pool[P];
int N = 100;
for (int i = 0; i < N; ++i) {
for (int pass = 0; pass < P; ++pass) {
pool[pass].Add(TFunc, (void*)i);
}
}
for (int pass = 0; pass < P; ++pass) {
pool[pass].Wait(&result);
result.Sort();
for (int i = 0; i < N; ++i) {
GLASSERT(result[i] == i);
}
}
printf("Parallel stress pass.\n");
}
}