回答編集履歴

5

asdasd

2020/08/19 15:04

投稿

Toshimichi
Toshimichi

スコア97

test CHANGED
@@ -173,7 +173,3 @@
173
173
 
174
174
 
175
175
  ```
176
-
177
-
178
-
179
- 上2つの例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。

4

asdasd

2020/08/19 15:04

投稿

Toshimichi
Toshimichi

スコア97

test CHANGED
@@ -156,19 +156,21 @@
156
156
 
157
157
 
158
158
 
159
- do {
159
+ while (endTime > shownTime) {
160
160
 
161
- if(System.currentTimeMillis() < shownTime + 1000) continue;
161
+ if (System.currentTimeMillis() < shownTime + 1000) continue;
162
162
 
163
163
  shownTime = System.currentTimeMillis();
164
164
 
165
165
  System.out.println(formatter.format(new Date(shownTime)));
166
166
 
167
- } while (endTime > shownTime);
167
+ }
168
168
 
169
169
  }
170
170
 
171
171
  }
172
+
173
+
172
174
 
173
175
  ```
174
176
 

3

コードの修正

2020/08/19 14:06

投稿

Toshimichi
Toshimichi

スコア97

test CHANGED
@@ -150,7 +150,7 @@
150
150
 
151
151
 
152
152
 
153
- long endTime = System.currentTimeMillis() + 300000;
153
+ long endTime = System.currentTimeMillis() + 30000;
154
154
 
155
155
  long shownTime = 0;
156
156
 

2

追加

2020/08/19 14:03

投稿

Toshimichi
Toshimichi

スコア97

test CHANGED
@@ -1,4 +1,4 @@
1
- 勘違いだったら申し訳ないのですが、秒毎に日時を表示させながら、他の処理を同時に行いたいということでしょうか。それならばjava.lang.Threadクラスを利用することで実現することができます。以下に例を示します。
1
+ 勘違いだったら申し訳ないのですが、1秒毎に日時を表示させながら、他の処理を同時に行いたいということでしょうか。それならばjava.lang.Threadクラスを利用することで実現することができます。以下に例を示します。
2
2
 
3
3
 
4
4
 
@@ -126,6 +126,52 @@
126
126
 
127
127
  ```
128
128
 
129
+ また、本当はこのようなコードはCPUを消費するためよくないのですが、sleepを使わない例もお見せします。
129
130
 
130
131
 
132
+
133
+ ```java
134
+
135
+ import java.text.SimpleDateFormat;
136
+
137
+ import java.util.Date;
138
+
139
+
140
+
141
+ public class Main {
142
+
143
+
144
+
145
+ public static void main(String[] args) {
146
+
147
+
148
+
149
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
150
+
151
+
152
+
153
+ long endTime = System.currentTimeMillis() + 300000;
154
+
155
+ long shownTime = 0;
156
+
157
+
158
+
159
+ do {
160
+
161
+ if(System.currentTimeMillis() < shownTime + 1000) continue;
162
+
163
+ shownTime = System.currentTimeMillis();
164
+
165
+ System.out.println(formatter.format(new Date(shownTime)));
166
+
167
+ } while (endTime > shownTime);
168
+
169
+ }
170
+
171
+ }
172
+
173
+ ```
174
+
175
+
176
+
131
- の例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。
177
+ 上2つの例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。

1

gay

2020/08/19 13:58

投稿

Toshimichi
Toshimichi

スコア97

test CHANGED
@@ -125,3 +125,7 @@
125
125
  2020/08/19 22:37:02
126
126
 
127
127
  ```
128
+
129
+
130
+
131
+ この例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。