我有多個線程試圖更新MySQL數據庫?是executeUpdate方法線程安全的使用?Java中的executeUpdate方法是線程安全的
1
A
回答
3
不,它不是線程安全的使用。實際上,如果其他線程使用語句,然後另一個線程調用executeUpdate(),那麼其他線程的ResultSet
(如果有)將被關閉。 JavaDoc for java.sql.Statement (of which PreparedStatement is a subtype)「Statement接口中的所有執行方法隱式關閉一個陳述的當前ResultSet對象(如果存在打開的)。」
此外,executeUpdate()
的給定實現不太可能寫成多線程安全的。
您應該同步所有對語句和結果集的使用,或者建立多個連接,以便每個線程都將自己的JDBC Connection
用於數據庫..我會推薦後者。
+0
並使用連接池,但您已經知道這一點 – jbindel 2012-01-12 00:09:02
0
考慮對你的更新方法使用synchronized關鍵字,想想你的併發線程死鎖有
相關問題
- 1. Java中的executeUpdate方法是線程安全的嗎?
- 2. Java - 靜態方法的線程安全
- 3. 線程安全的方法
- 4. 的Java:檢測到「不是線程安全」的方法
- 5. 是靜態方法線程安全
- 6. Java:使用同步方法的類中的線程安全
- 7. 線程安全方法?
- 8. 部分線程安全是否使Java類線程安全?
- 9. Java Transport.send()是線程安全的嗎?
- 10. Java:線程安全的RandomAccessFile
- 11. 線程安全的方法setlocale()
- 12. QTimer線程安全的方法'isActive()'?
- 13. 線程安全的Dispose方法?
- 14. 線程安全的UIKit方法
- 15. 列表<String>的添加方法是線程安全還是不安全?
- 16. java.security.cert.Certificate中的驗證方法是否線程安全?
- 17. Singleton類線程中的方法是否安全?
- 18. 如何捍衛Singleton類方法在Java中是線程安全的?
- 19. 查找安裝的PHP是線程安全的還是非線程安全的?
- 20. 「這個方法不是線程安全的」是什麼意思?
- 21. 子過程不是線程安全的,替代方法?
- 22. Java類線程安全的方法,考試認證1Z0-851
- 23. 的Java:靜態工廠方法和線程安全
- 24. Java類中的線程安全性
- 25. 是RSA_sign線程安全的
- 26. 是AmazonSimpleNotificationServiceClient線程安全的?
- 27. 是res_query線程安全的?
- 28. 是Magento線程安全的?
- 29. 是newKieSession線程安全的?
- 30. Spring&Tika集成:我的方法是線程安全的嗎?
更多信息http://stackoverflow.com/questions/1272453/jdbc-fundamental-concepts-pooling-and-threading – 2012-01-11 23:32:10
如果你有多個線程,你應該使用多個連接。就那麼簡單。 – bestsss 2012-01-11 23:34:10
除了擔心線程安全之外,您還可能需要考慮併發數據庫訪問(事務)。 – 2012-01-12 00:19:47