回答編集履歴
2
フィールドをprivateに変更。それ以外はこのままにしておきます。
answer
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
private boolean waitFor = true;
|
28
28
|
private final Deque<Thread> tqueue = new LinkedList<>();
|
29
|
-
int numThreads = 0;
|
29
|
+
private int numThreads = 0;
|
30
30
|
|
31
31
|
public RoundRobinScheduler(int repeat) {
|
32
32
|
this.repeat = repeat;
|
1
誤字を修正
answer
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
**lockオブジェクト**
|
2
2
|
|
3
|
-
まだスレッドを利用する
|
3
|
+
まだスレッドを利用する並行処理の理解ができていません。
|
4
4
|
|
5
|
-
- lockオブジェクトが2つのスレッドで別々に生成されているので
|
5
|
+
- lockオブジェクトが2つのスレッドで別々に生成されているので排他制御できません。
|
6
|
-
- スレッドの
|
6
|
+
- スレッドの実行は交互ではありません。次にどのスレッドが動くかは予想できないのです。
|
7
7
|
|
8
8
|
**スケジューラ**
|
9
9
|
|
10
|
-
交互に動かしたいなら、[java.util.concurrent.CyclicBarrier](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/util/concurrent/CyclicBarrier.html)を使うか、スケジューラを自作します。ここではスケジューラを自作してみまし
|
10
|
+
交互に動かしたいなら、[java.util.concurrent.CyclicBarrier](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/util/concurrent/CyclicBarrier.html)を使うか、スケジューラを自作します。ここではスケジューラを自作してみましょう。
|
11
11
|
|
12
12
|
**キューを使うラウンドロビンスケジューラ**
|
13
13
|
|