Многопоточность в соединении JDBC - PullRequest
0 голосов
/ 02 ноября 2009

Я пытаюсь загрузить файл на сервер и сохранить информацию о файле в базе данных Access, есть ли необходимость обрабатывать потоки при подключении базы данных для нескольких пользователей. Если да, то как это сделать?

Ответы [ 2 ]

2 голосов
/ 02 ноября 2009

Ваш веб-сервер наследуется по многопоточности, что избавляет вас от реализации собственных потоков для обработки загрузок. Однако убедитесь, что несколько запросов не используют одни и те же ресурсы (не записывайте все загруженные файлы в один и тот же файл tmp, ....)

Чтобы избежать проблем с сохранением данных в вашей базе данных, используйте пул соединений.

Так что да, вам нужны потоки, но если ваш дизайн хорош, тогда все потоки будут обрабатываться вашими фреймворками

1 голос
/ 02 ноября 2009

Точно. Каждый HTTP-запрос уже является отдельным потоком. Имейте в виду, что веб-контейнер создаст только один экземпляр сервлета за время существования приложения и что код сервлета распределяется между всеми запросами. Это подразумевает, что любые переменные уровня класса или статические переменные будут совместно использоваться всеми запросами. Если у вас есть такая переменная, она не поточно-безопасная. Вам необходимо объявить специфичные для запроса переменные threadlocal на уровне метода.

Что касается JDBC: просто напишите твердый код, и все должно идти хорошо. Использование пула соединений полезно только для повышения производительности соединения (что действительно стоит усилий, поверьте мне, подключение БД - довольно дорогая задача, которая может занимать не менее 200 мс или даже больше, при этом повторное использование соединения из затрат пула почти ничего). Это только ничего не меняет в безопасности потока написанного вами кода, оно все еще в ваших руках. Чтобы получить четкое представление о том, как правильно выполнять базовое кодирование JDBC, вы можете найти эту статью полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...