回答編集履歴
3
s.getId() -> th[i].getId()
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
calendar.add(Calendar.SECOND, nums[i]);
|
27
27
|
Date d1 = calendar.getTime();
|
28
28
|
|
29
|
-
System.out.printf("%d %s %s %s %d %s %s\n",
|
29
|
+
System.out.printf("%d %s %s %s %d %s %s\n", th[i].getId(), "start", sdf.format(date), "wait",
|
30
30
|
nums[i], sdf.format(d1), "end");
|
31
31
|
}
|
32
32
|
```
|
2
getTime() と add() を入れ替え
test
CHANGED
@@ -23,8 +23,8 @@
|
|
23
23
|
th[i] = new Thread();
|
24
24
|
th[i].start();
|
25
25
|
calendar.setTime(date);
|
26
|
+
calendar.add(Calendar.SECOND, nums[i]);
|
26
27
|
Date d1 = calendar.getTime();
|
27
|
-
calendar.add(Calendar.SECOND, nums[i]);
|
28
28
|
|
29
29
|
System.out.printf("%d %s %s %s %d %s %s\n", s.getId(), "start", sdf.format(date), "wait",
|
30
30
|
nums[i], sdf.format(d1), "end");
|
1
更新
test
CHANGED
@@ -12,4 +12,23 @@
|
|
12
12
|
ただし、これが本当に質問者さんがやりたいことなのかは確信がもてません。
|
13
13
|
質問文のコードでは乱数30個の生成とそのソートがメインスレッドで 27,000 回実行されます。(`h`のループ * `th`のループ * `i`のループ)
|
14
14
|
|
15
|
+
----
|
15
16
|
|
17
|
+
追記:
|
18
|
+
やりたいことはなんとなく理解できた気がします。「個々のスレッドに乱数を割り当て、そのスレッドの情報を乱数順に表示したい」ということなのでしょう。以下のような構成にするといいんじゃないでしょうか。
|
19
|
+
```java
|
20
|
+
int[] nums = new Random().ints(30, 2, 11).toArray();
|
21
|
+
Arrays.sort(nums);
|
22
|
+
for (int i = 0; i < 30; i++) {
|
23
|
+
th[i] = new Thread();
|
24
|
+
th[i].start();
|
25
|
+
calendar.setTime(date);
|
26
|
+
Date d1 = calendar.getTime();
|
27
|
+
calendar.add(Calendar.SECOND, nums[i]);
|
28
|
+
|
29
|
+
System.out.printf("%d %s %s %s %d %s %s\n", s.getId(), "start", sdf.format(date), "wait",
|
30
|
+
nums[i], sdf.format(d1), "end");
|
31
|
+
}
|
32
|
+
```
|
33
|
+
|
34
|
+
|