Я пишу «лог-сервер», который используется для получения журнала от клиента по TCP. при получении журнала он будет записывать журнал в файл на диске. для производительности файл использует большой буфер, проблема в том, что буфер будет сброшен на диск ТОЛЬКО при заполнении буфера. Так есть ли какой-нибудь api, который может заставить промывать период выполнения?
У меня есть идея: вызвать сброс в отдельный период потока, НО я не уверен, правильно ли он, в то время как другой поток может записывать данные в то же время.
Я использую другой поток для очистки буферного периода, все работает хорошо






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