Guest User

Untitled

a guest
Nov 14th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. package com.javarush.task.task16.task1622;
  2.  
  3. /*
  4. Последовательные выполнения нитей
  5. 1. В методе run после всех действий поставь задержку в 10 миллисекунд. Выведи «Нить прервана«, если нить будет прервана.
  6. 2. Сделай так, чтобы все нити выполнялись последовательно: сначала для нити №1 отсчет с COUNT до 1, потом для нити №2 с COUNT до 1 и т.д.
  7.  
  8. Пример:
  9. #1: 4
  10. #1: 3
  11. ...
  12. #1: 1
  13. #2: 4
  14. ...
  15.  
  16.  
  17. Требования:
  18. 1. Программа должна создавать 4 объекта типа SleepingThread.
  19. 2. Метод main должен вызвать join у каждой создаваемой SleepingThread нити.
  20. 3. Метод run должен использовать Thread.sleep(10).
  21. 4. Вывод программы должен соответствовать условию.
  22. 5. Если нить SleepingThread прерывается, она должна вывести сообщение "Нить прервана".
  23. */
  24.  
  25. public class Solution {
  26. public volatile static int COUNT = 4;
  27.  
  28. public static void main(String[] args) throws InterruptedException {
  29. for (int i = 0; i < COUNT; i++) {
  30. new SleepingThread().join();
  31. // Thread.currentThread().join();
  32. //напишите тут ваш код
  33. }
  34. }
  35.  
  36. public static class SleepingThread extends Thread {
  37. private static volatile int threadCount = 0;
  38. private volatile int countDownIndex = COUNT;
  39.  
  40. public SleepingThread() {
  41. super(String.valueOf(++threadCount));
  42. start();
  43. }
  44.  
  45. public void run() {
  46. while (true) {
  47.  
  48. try {
  49. System.out.println(this);
  50. if (--countDownIndex == 0)
  51.  
  52. return;
  53. Thread.sleep(10);
  54. } catch (InterruptedException e) {
  55. System.out.println("Нить прервана");
  56.  
  57. }
  58.  
  59. //напишите тут ваш код
  60. }
  61. }
  62.  
  63. public String toString() {
  64. return "#" + getName() + ": " + countDownIndex;
  65. }
  66. }
  67. }
Add Comment
Please, Sign In to add comment