Advertisement
project_number_03

WithThreads

Jan 28th, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.94 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Main {
  4.  
  5.     public static void main(String[] args) {
  6.         Date d1 = new Date(); //время начала выполнения программы
  7.         CounterClass c1 = new CounterClass(10000000, 20000000); //первый экземпляр класса-поисковика чисел с отдельным потоком
  8.         CounterClass c2 = new CounterClass(20000001, 30000000); //второй экземпляр класса-поисковика чисел с отдельным потоком
  9.         CounterClass c3 = new CounterClass(30000001, 40000000); //третий экземпляр класса-поисковика чисел с отдельным потоком
  10.         while (true){
  11.             if(!c1.getTh().isAlive() && !c2.getTh().isAlive() && !c3.getTh().isAlive()){
  12.                 System.out.println("Длина списка: " + (c1.getList().size() + c2.getList().size() + c3.getList().size()));
  13.                 Date d2 = new Date(); //время окончания выполнения программы
  14.                 long time = d2.getTime() - d1.getTime();
  15.                 System.out.println("Время выполнения: " + time + " мс"); //у меня ~500 мс
  16.                 break;
  17.             }
  18.         }
  19.     }
  20. }
  21.  
  22. public class CounterClass implements Runnable {
  23.     private int beginIndex;
  24.     private int endIndex;
  25.     private ArrayList<Integer> list = new ArrayList<>();
  26.     private Thread th;
  27.  
  28.     public CounterClass(int beginIndex, int endIndex) {
  29.         this.beginIndex = beginIndex;
  30.         this.endIndex = endIndex;
  31.         th = new Thread(this);
  32.         th.start();
  33.     }
  34.  
  35.     @Override
  36.     public void run() {
  37.         for(int i = beginIndex; i <= endIndex; i++){
  38.             if(i % 11 == 0 || i % 13 == 0 || i % 17 == 0) list.add(i);
  39.         }
  40.     }
  41.  
  42.     public Thread getTh() {
  43.         return th;
  44.     }
  45.  
  46.     public ArrayList<Integer> getList() {
  47.         return list;
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement