Кто как реализует управление жизненным циклом нитей? Предположим есть программа которая создает некоторое количество нитей. Нити могут сами завершиться, а может потребоваться завершить их из другого потока. Надо быть уверенным что при этом всегда освобождаются ресурсы и нет «висячих» нитей, race condition и т.д. Помимо надежности хочется чтобы код был простым и прозрачным, а не запутанным. Если у кого был позитивный опыт в этом деле, то поделитесь своим опытом.