कभी-कभी मुझे std::thread
अपने एप्लिकेशन को गति देने के लिए उपयोग करना पड़ता है । मुझे यह भी पता है join()
कि एक धागा पूरा होने तक इंतजार किया जाता है। यह समझना आसान है, लेकिन कॉल करने detach()
और इसे न करने के बीच क्या अंतर है?
मुझे लगा कि इसके बिना detach()
, थ्रेड का तरीका स्वतंत्र रूप से एक थ्रेड का उपयोग करके काम करेगा।
कोचिंग नहीं:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called without detach");
});
//some code here
}
कोचिंग के साथ कॉलिंग:
void Someclass::Somefunction() {
//...
std::thread t([ ] {
printf("thread called with detach");
});
t.detach();
//some code here
}
std
और boost
धागे की है detach
और join
POSIX धागे के बाद बारीकी से मॉडलिंग की।