43 lines
1.0 KiB
C++
43 lines
1.0 KiB
C++
#include <MyThreadPool.h>
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
size_t threadCount = 0;
|
|
if (argc > 1) {
|
|
threadCount = std::stoul(argv[1]);
|
|
}
|
|
MyThreadPool::ThreadPool tp(threadCount);
|
|
|
|
auto task = [](int i) {
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
|
std::cout << "Testing future " << i << std::endl;
|
|
return i / 2;
|
|
};
|
|
|
|
tp.enqueue(
|
|
0, [](int i) {
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
|
std::cout << "Test " << i << std::endl;
|
|
return i / 2;
|
|
},
|
|
45);
|
|
|
|
auto fut = tp.enqueue(0, task, 10);
|
|
|
|
std::cout << "Returned: " << fut.get() << std::endl;
|
|
|
|
tp.waitForTasks();
|
|
|
|
std::cout << "Done." << std::endl;
|
|
|
|
tp.enqueue(0, []() {
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
|
std::cout << "Finished with destructor." << std::endl;
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(500));
|
|
});
|
|
|
|
return 0;
|
|
}
|