C темы стоит использовать повторно?

Стоит ли тратить время на написание кода для повторного использования потоков в C, или они дешевы в создании и уничтожении?

Я рендерил некоторые CPU только на 3D графику, и она шла довольно медленно (примерно 5 кадров в секунду). Я пытался использовать темы, чтобы решить эту проблему. Использование 4 потоков, каждый из которых рендерил полосу экрана, казалось, увеличило частоту кадров до чего-то очень разумного и плавного. Я все еще беспокоюсь о том, что произойдет, когда я сделаю свою графику более сложной. Получу ли я ощутимый прирост скорости, повторно используя мои потоки вместо того, чтобы создавать и уничтожать их каждый кадр?

Изменить: Операционная система, над которой я работаю, является Windows.

2 ответа

Решение

Так как с 1 потоком вы получили около 5 кадров в секунду, предположительно с 4 потоками, вы получили где-то около 20 кадров в секунду? Итак, вы будете создавать и уничтожать более 80 потоков в секунду, если не будете их хранить? Потоки довольно легковесны, но я думаю, вы начнете замечать, что это слишком много.

Вы устраните довольно много накладных расходов и задержек, да. TBH, я не могу понять, почему так много разработчиков начинают с постоянного создания и уничтожения потоков - это неэффективно, сложно и подвержено утечкам и другим катастрофам.

Другие вопросы по тегам