У меня есть boost::thread_group
, который я инициализировал, используя thread_group
,
например. thread_group tg1;
и заполняется с помощью create_thread
. При использовании create_thread
потоки начинают выполнение.
Различные потоки в моей группе потоков могут завершать выполнение в разное время. Я знаю, что можно использовать tg1.join_all()
, если цель состоит в том, чтобы дождаться завершения выполнения всех потоков в группе потоков.
Однако в идеале я бы хотел вызвать эту функцию, дождаться последнего завершенного потока, удалить его из группы и соответствующим образом использовать результаты потока, а затем снова вызвать функцию подождите, если ни один другой поток не завершил выполнение, или он немедленно вернет следующий поток, который завершил выполнение, как обычная функция join()
), пока группа не станет пустой.
Есть ли в библиотеках наддува какая-либо функция, которая может возвращать идентификатор потока, который закончил первым?