38 lines
911 B
C++
38 lines
911 B
C++
|
#include <MyThreadPool.h>
|
||
|
#include <iostream>
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
MyThreadPool::ThreadPool tp(4);
|
||
|
|
||
|
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;
|
||
|
}
|