質問編集履歴

4

お礼

2017/05/14 07:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,9 @@
41
41
  }
42
42
 
43
43
  ```
44
+
45
+ データベースセッション(トランザクション)に複数スレッドが相乗りしてもよいのか?が、質問の趣旨だったということに気づきました。質問の仕方が悪かったのでしょうか、ステレオタイプな答えしか返ってこなかったので、やる気をなくしました。
46
+
47
+
48
+
49
+ 少し視野を広げてConcurrencyについて自分で調べることします。皆様ありがとうございました。

3

Connecttionを訂正

2017/05/14 07:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  ```Java
32
32
 
33
- Connecttion conn = ...
33
+ Connection conn = ...
34
34
 
35
35
  synchronized(conn) {
36
36
 

2

スレッドセーフとトランザクションについて

2017/05/12 21:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,23 @@
21
21
  私はこのくらいしか思い浮かばないのですが、その他に、考えなければならない要素がありますか?
22
22
 
23
23
  答えを募集します。
24
+
25
+
26
+
27
+ スレッドセーフとトランザクションとは分けて考えるべきでしょうか?わからなくなってきました。たとえば、次のようなコードが書けると思います。これでもよいのか?
28
+
29
+
30
+
31
+ ```Java
32
+
33
+ Connecttion conn = ...
34
+
35
+ synchronized(conn) {
36
+
37
+ // データベースの更新 - 複数のSQLを実行する。
38
+
39
+ // データベースを commit/rollbackする。
40
+
41
+ }
42
+
43
+ ```

1

JDBCの仕様を追加

2017/05/12 03:32

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,12 @@
1
1
  「java.sql.Connectionはスレッドセーフか」と聞かれたらどう答えますか。
2
+
3
+
4
+
5
+ まず、Webで調べてみると、JDBCの仕様はスレッドセーフとしているようです。実装がどうかはわかりませんが。
6
+
7
+
8
+
9
+ では、スレッドセーフだとして、マルチスレッドで使ってよいのか?
2
10
 
3
11
 
4
12