Нет, Вы не делаете. Каждый программист все еще получает точно одну зарплату.
Вы думаете, что Ваши программисты не будут говорить друг с другом, если Вы не назовете его "программированием пары"? Вы думаете, программируя, совершенно parallelizable?
Поскольку вы можете присоединиться к потоку даже после его завершения, joinable () по-прежнему будет возвращать значение true, пока вы не вызовете join () или detach (). Если вы хотите знать, выполняется ли все еще поток, вы должны иметь возможность вызвать timed_join с временем ожидания 0. Обратите внимание, что это может привести к состоянию гонки, поскольку поток может завершиться сразу после вызова.
Используйте thread :: timed_join () с минимальным таймаутом. Он вернет false, если поток все еще запущен.
Пример кода:
thread_->timed_join(boost::posix_time::seconds(0));
Вы в принципе не можете этого сделать. Причина в том, что есть два возможных ответа: «Да» и «Не когда я смотрел в последний раз, но, возможно, сейчас». Нет надежного способа определить, что поток все еще находится внутри своего метода выполнения, даже если существовал надежный способ определить обратное.