3

如果我在函数中有以下序列

void UpdateDatabase(conn) {
    createStatement
    executeStaement
    getResult
}

这个调用序列在多线程中是否安全Java

4

2 回答 2

2

假设您的线程不共享任何状态或以其他方式正确同步共享状态,则在查看 JVM 内部发生的情况时,执行仅是线程安全的。然而,更重要的是您的数据是否仍然可能被损坏。

每个 JDBC 连接一次只能由一个线程使用,您正在这样做。然而,数据库系统定义了四个隔离级别,定义了并发事务可以看到的数据状态。如果您的并发交易没有触及相同的数据,您就可以了。如果是这样,请查看数据库的隔离级别。

于 2013-04-17T09:20:13.827 回答
0

如果你稍微改变一下

void updateDatabase() {
    getConnection
    createStatement
    executeStaement
    getResult
}

这绝对是线程安全的

于 2013-04-17T08:59:22.443 回答