Отсоединенные и присоединяемые потоки POSIX
Я использую pthread
библиотека для создания и объединения потоков в C.
когда я должен создать поток как отдельный, с самого начала? Предлагает ли он какое-либо преимущество в производительности по сравнению с объединяемым потоком?
законно ли не делать
pthread_join()
в объединяемом (по умолчанию) потоке? Или такой поток всегда должен использовать
1 ответов
создайте отдельный поток, когда вы знаете, что не хотите ждать его с
pthread_join()
. Единственное преимущество производительности заключается в том, что при завершении отсоединенного потока его ресурсы могут быть освобождены немедленно, а не ждать соединения потока, прежде чем ресурсы могут быть освобождены."законно" не присоединяться к объединяемому потоку; но обычно это не рекомендуется, потому что (как отмечалось ранее) ресурсы не будут выпущены до поток соединен, поэтому они будут оставаться связанными бесконечно (до выхода программы), если вы не присоединитесь к нему.