Вы можете ограничить количество потоков, которые участвуют в запросах к базе данных, или, если это невозможно из-за характера вашего приложения, вы можете использовать более детальный подход для ограничения доступа к общему ресурсу.В python вы можете использовать встроенные объекты семафоров для синхронизации между потоками.Для синхронизации между процессами (или между потоками) вы должны использовать posix_ipc .Это зависит от модели выполнения вашей службы.
Большинству клиентов баз данных не требуется регулирование на уровне приложения.В типичной системе соединения с базой данных будут объединяться, и менеджер соединений будет отвечать за получение доступного соединения.Внутренне это обычно включает какую-то очередь с тайм-аутами, чтобы предотвратить ожидание бесконечно.Затем сама база данных будет обрабатывать планирование отдельных операций, выполняемых каждым соединением.
Однако семафор является примитивом сигнализации, который может использоваться для ограничения числа одновременных операций: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Semaphore.html
Задачи также могут быть смоделированы как проблема производитель-потребитель , которая включает общую очередь, однако вам придется иметь дело с дополнительной сложностью управления потоками-потребителями в дополнение к производителям.