Если я следующая последовательность в функцииJava JDBC потокобезопасность
void UpdateDatabase(conn) {
createStatement
executeStaement
getResult
}
ли эта последовательность вызовов Многопоточность безопасности в Java
Если я следующая последовательность в функцииJava JDBC потокобезопасность
void UpdateDatabase(conn) {
createStatement
executeStaement
getResult
}
ли эта последовательность вызовов Многопоточность безопасности в Java
Если изменить его немного
void updateDatabase() {
getConnection
createStatement
executeStaement
getResult
}
он будет быть определенно потокобезопасным
Ну, вопрос: «_Is эта последовательность вызовов thread safe_». И не как сделать этот поточно-безопасный – Apurv
Азимут ваших потоков не разделяет или иным образом синхронизировать совместно используемое состояние, выполнение выполняется только в потоковом режиме при просмотре того, что происходит внутри JVM. Что еще более важно, однако, если ваши данные все еще могут быть повреждены.
Каждое соединение JDBC должно использоваться только одним потоком за раз, что вы делаете. Однако системы баз данных определяют четыре уровня изоляции, определяя, какое состояние транзакций данных можно увидеть. Если ваши параллельные транзакции не касаются одних и тех же данных вашего штрафа. Если да, посмотрите на уровень изоляции вашей базы данных.
Я думаю, вам нужно показать нам еще несколько фрагментов кода, например, какие параметры используются 'createStatement',' executeStaement' и 'getResult'. Как вы называете функцию «UpdateDatabase» – Apurv
Также это будет зависеть от того, какую базу данных вы используете. Обычно базы данных будут управлять параллельными запросами. Таким образом, вы не будете беспокоиться о безопасности потоков на стороне клиента db. – anoopelias
Возможный дубликат [Is java.sql.Connection thread safe?] (Http://stackoverflow.com/questions/1531073/is-java-sql-connection-thread-safe) –