Есть программа на с++
Главный класс - управляющий
class Alicorn {}
Рабочие классы выполняющие задания в потоках, унаследованные от одного абстрактного класса.
class EarthPony: Pony {}
class PegasusPony: Pony {}
class UnicornPony: Pony {}
Все рабочие выполняют операции с MySQL: чтения либо записи. Запись само собой идёт через транзакцию, в случае неудачи откат, в случае успеха - подтверждения. Каждый тред соединяется к MySQL через свое соединение.
А теперь глупые вопросы:
1) нужно ли делать синхронизацию (multiple reads/one write) или это MySQL сам нормально всё разрулит?
2) Как boost::shared_mutex делить между классами, если рабочие классы не имеют связи с управляющем?