Фрапс показывает иногда 300 – 500 фпс. Плюс может кратковременно просесть. Если ту же функцию впихнуть вне потока – 1200 стабильно.
А что Вы хотели? Многопоточность требует расходов,
так что если использовать её неправильно,
то можно наоборот сделать всё тормознутей, чем с одним потоком.
Вот только где? Перед чем ? Куда не тыкал все не работает.
Для начала: http://www.sfml-dev.org/tutorials/2.0/graphics-draw.php
Здесь ясно сказано:
SFML supports multi-threaded drawing, and you don’t even have to do anything to make it work. The only thing to remember is to deactivate a window before using it in another thread. That’s because a window (more precisely its OpenGL context) cannot be active in more than one thread at the same time.
так что пусть отрисовкой занимается один поток,
иначе у Вас будут проблемы с отрисовкой/синхронизацией.
Там же есть и пример с использованием потоков, в т.ч. вызов sf::Window::setActive
1. Паттерн пул объектов. полазил, почитал, там темный лес и я решил ну его) И 2. Потоки. Это понравилось больше, и в общем я использую для них библиотеку thread из VS 2015.
В общем случае, пул потоков будет эффективнее и лучше.
Плюс учтите, что нельзя в SFML постоянно создавать новые потоки,
которые будут работать с ресурсами, это приведет к “мнимой” утечке ресурсов.