回答編集履歴

1

訂正

2016/12/02 00:10

投稿

退会済みユーザー
test CHANGED
@@ -171,3 +171,233 @@
171
171
  }
172
172
 
173
173
  ```
174
+
175
+
176
+
177
+ コメントの訂正により親スレッドで感知して反応するようにしたものが以下です
178
+
179
+ ```java
180
+
181
+ public class OPD {
182
+
183
+
184
+
185
+ static A11 as = null;
186
+
187
+ static A12 as2 = null;
188
+
189
+ static A13 as3 = null;
190
+
191
+
192
+
193
+ public static void main(String[] args) {
194
+
195
+
196
+
197
+ as = new A11();
198
+
199
+ as2 = new A12();
200
+
201
+ as3 = new A13();
202
+
203
+
204
+
205
+ as.start();
206
+
207
+ as2.start();
208
+
209
+ as3.start();
210
+
211
+ while (true) {
212
+
213
+
214
+
215
+ if (A12.running == false || A13.running == false
216
+
217
+ || A11.running == false) {
218
+
219
+ A12.running = false;
220
+
221
+ A13.running = false;
222
+
223
+ A11.running = false;
224
+
225
+ break;
226
+
227
+ }
228
+
229
+
230
+
231
+ }
232
+
233
+
234
+
235
+ }
236
+
237
+
238
+
239
+ }
240
+
241
+
242
+
243
+ class A11 extends Thread {
244
+
245
+
246
+
247
+ static boolean running = true;
248
+
249
+
250
+
251
+ public void run() {
252
+
253
+ try {
254
+
255
+ for (int a = 0; a < 10; a++) {
256
+
257
+ if (running == false)
258
+
259
+ return;
260
+
261
+ System.out.println("down1:" + a);
262
+
263
+
264
+
265
+ Thread.sleep(1000);
266
+
267
+
268
+
269
+ }
270
+
271
+ return;
272
+
273
+ } catch (Exception e) {
274
+
275
+ running = false;
276
+
277
+
278
+
279
+ return;
280
+
281
+
282
+
283
+ }
284
+
285
+
286
+
287
+ }
288
+
289
+
290
+
291
+ }
292
+
293
+
294
+
295
+ class A12 extends Thread {
296
+
297
+ static boolean running = true;
298
+
299
+
300
+
301
+ public void run() {
302
+
303
+ try {
304
+
305
+ for (int a = 0; a < 10; a++) {
306
+
307
+ if (running == false)
308
+
309
+ return;
310
+
311
+ System.out.println("down2:" + a);
312
+
313
+ if (a == 5) {
314
+
315
+ System.out.println("error all thread stop");
316
+
317
+
318
+
319
+ throw new Exception();
320
+
321
+
322
+
323
+ }
324
+
325
+
326
+
327
+ Thread.sleep(1000);
328
+
329
+
330
+
331
+ }
332
+
333
+ return;
334
+
335
+
336
+
337
+ } catch (Exception e) {
338
+
339
+ running = false;
340
+
341
+ return;
342
+
343
+ }
344
+
345
+ }
346
+
347
+
348
+
349
+ }
350
+
351
+
352
+
353
+ class A13 extends Thread {
354
+
355
+ static boolean running = true;
356
+
357
+
358
+
359
+ public void run() {
360
+
361
+ try {
362
+
363
+ for (int a = 0; a < 10; a++) {
364
+
365
+ if (running == false)
366
+
367
+ return;
368
+
369
+ System.out.println("down3:" + a);
370
+
371
+
372
+
373
+ Thread.sleep(1000);
374
+
375
+
376
+
377
+ }
378
+
379
+ return;
380
+
381
+ } catch (Exception e) {
382
+
383
+ running = false;
384
+
385
+
386
+
387
+ return;
388
+
389
+
390
+
391
+ }
392
+
393
+
394
+
395
+ }
396
+
397
+
398
+
399
+ }
400
+
401
+
402
+
403
+ ```