Académique Documents
Professionnel Documents
Culture Documents
-
Threads C++11
picard@ensea.fr
task t;
thread th(t);
void func() {
m.lock();
// code
m.unlock();
};
void func() {
unique_lock<mutex> lck(m);
// code
void func() {
unique_lock<mutex> lck(m);
cv.wait(lck);
● signalement
cv.notify_one(); // libère 1 thread
● condition ad hoc
cv.wait(lck, []{ return ok==1;});
// équivalent à
while(ok != 1) cv.wait(lck);
execute(task* t);
...
● worker
● abstraction d'un thread
● tourne en permanence pour vider la queue de task
● Task
● abstraction d'une tâche (callable)