У меня есть класс, назовем его Foo foo, который содержит данные, полезные для нескольких потоков. Эти потоки могут вызывать операции чтения и записи (например, foo-> emplace (something)), которые я защищал мьютексом внутри Foo и добавил блокировки мьютексов к операциям. Вот где я не уверен, когда дело доходит до реализации. Мне нужно добавить еще одну часть общей информации в foo, где я должен вызвать foo-> emplace2 (somethingElse), и это сохранит somethingElse в std :: set, но это должно храниться только в течение минуты.
Как к этому подходить? Могу ли я создать новый поток изнутри foo всякий раз, когда вызывается emplace2, и внутри этого потока emplace, засыпаю на 60 секунд, а затем стираю? Мне кажется, что есть способ лучше, чем создавать множество потоков каждый раз, когда вызывается emplace2.
Код не нужен, просто общие рекомендации по реализации.