Использование класса потока для управления отправкой / получением сообщений

У меня есть класс, который я использую для управления созданием и уничтожением потоков, которые отвечают за отправку и получение сообщений CAN. Я не знаю, является ли это лучшим способом для этого, поэтому я ищу совет о том, как управлять своими потоками для отправки сообщений и получения сообщений.

В основном я хочу, чтобы spawnThread () порождал поток для объекта, переданного ему.
Итак, что-то с эффектом

spawnThread(T obj)
{
std::thread (&T::obj, this);
}

Я ожидал, что я буду использовать класс Thread для управления началом и окончанием потока для двух отдельных классов SendMessage и ReceiveMessage. Есть ли лучший способ обработки потоков для отправки и получения сообщений?

-2

Решение

В OO нет такого понятия, как шаблон менеджера. Поток либо выполняет непрерывную работу, такую ​​как ожидание соединений, либо выполняет одну операцию. Последний тип обычно является рабочими потоками, которые используются повторно.

Теперь подходит к вопросу. Потоки не масштабируются. Если у вас есть задачи отправки / получения, обработайте их в пуле рабочих потоков фиксированного размера. Как следствие, ваше приложение будет реагировать медленнее, если рабочая нагрузка увеличит размер пула, так как новый запрос должен ждать работника, но он будет продолжать работать.

2

Другие решения

Других решений пока нет …