Manchmal muss ich std::thread
meine Anwendung beschleunigen. Ich weiß auchjoin()
wartet, bis ein Thread abgeschlossen ist. Das ist leicht zu verstehen, aber was ist der Unterschied zwischen Anrufen detach()
und Nichtanrufen?
Ich dachte das ohne detach()
, die Methode des Threads mit einem Thread unabhängig arbeiten wird.
Nicht ablösen:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
Anrufen mit Abnehmen:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
std
und boost
Threads haben detach
und sind join
eng an POSIX-Threads angelehnt.