Я не понимаю, как здесь может помочь какой-либо из предложенных подходов, заключающих в себе вызовы JDBC в Actors, executors или что-то еще - может кто-то прояснить.
Конечно, основная проблема заключается в том, что блок операций JDBC насокет IO.Когда он делает это, он блокирует поток, продолжающий историю.Какую бы оболочку вы ни выбрали, чтобы использовать ее, в конечном итоге один поток будет занят / заблокирован для одновременного запроса.
Если базовые драйверы базы данных (MySql?) Предлагают средства для перехвата создания сокета (см. SocketFactory).) тогда я представляю, что было бы возможно создать асинхронный управляемый событиями слой базы данных поверх API JDBC, но мы должны были бы инкапсулировать весь JDBC за фасадом, управляемым событиями, и этот фасад не будет выглядеть как JDBC (после негобудет событиями).Обработка базы данных будет происходить асинхронно в другом потоке к вызывающей стороне, и вам нужно будет решить, как создать менеджер транзакций, который не зависит от привязки к потоку.
Что-то вроде подхода, о котором я упоминал,разрешить даже одному фоновому потоку обрабатывать загрузку одновременных JDBC-файлов.На практике вы, вероятно, запустили бы пул потоков, чтобы использовать несколько ядер.
(Конечно, я не комментирую логику исходного вопроса, а просто ответы, которые подразумевают этот параллелизм в сценарии сблокировка ввода-вывода сокета возможна без использования шаблона селектора - проще просто проработать свой типичный параллелизм JDBC и поместить пул соединений нужного размера).
Похоже, MySql, вероятно, что-то делает вместестроки, которые я предлагаю --- http://code.google.com/p/async-mysql-connector/wiki/UsageExample