Example #1
0
int main() {
    TaskQueue<FibonacciTask> fibonacciTasks;
    for (int i = 42; i >= 39; --i) {
        fibonacciTasks.add([i](size_t threadId) { runFibonacci(i, threadId); });
    }

    ThreadPool<FibonacciTask> threadPool(4, fibonacciTasks);

    for (int j = 0; j < 5; ++j) {
        for (int i = 35; i > 20; --i) {
            fibonacciTasks.add([i](size_t threadId) { runFibonacci(i, threadId); });
        }
        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
    return 0;
}