Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
threadpool01
//Title of this code #include <iostream> #include <thread> #include <list> #include <mutex> using namespace std; class Job { public: virtual void work() = 0; }; class ThreadPool { int numThreads; list<thread*> workingThreads; list<thread*> freeThreads; queue<Job*> jobs; mutex jobsLock; public: ThreadPool(int threads): numThreads(threads) {} ~ThreadPool() {} void initialize() { for (int i = 0; i < numThreads; ++i) { freeThreads.push_back(new thread()); } } void addJob(Job* j) { jobsLock.lock(); jobs.push(j); jobsLock.unlock(); } void jobWrapper() private: Job* getJob() { Job* j = NULL; jobsLock.lock(); if (!jobs.empty()) { j = jobs.front(); jobs.pop(); } jobsLock.unlock(); return j; } }; int main() { std::cout << "Hello, world!\n"; }
run
|
edit
|
history
|
help
0
PalindromeDay
Merge intervals leetcode
Bin Tree build
StackBubLink
member initial list
Microsoft - MaxEmployeeAttendence (R repititions - Semi Optimised DP)
HCF
grid
C++ - Chained Methods
motores