質問編集履歴
4
お礼
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を訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
```Java
|
32
32
|
|
33
|
-
Connect
|
33
|
+
Connection conn = ...
|
34
34
|
|
35
35
|
synchronized(conn) {
|
36
36
|
|
2
スレッドセーフとトランザクションについて
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の仕様を追加
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
|
|