Guest User

Untitled

a guest
Jan 21st, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package javaapplication1;
  6.  
  7. /**
  8. *
  9. * @author Zychu
  10. */
  11.  
  12. // Uzycie interfejsu runnable, BARTOSZ IDKOWIAK
  13. import java.util.Random;
  14. import java.util.logging.Level;
  15. import java.util.logging.Logger;
  16.  
  17.  
  18.  
  19.  
  20. class Dodawanie implements Runnable {
  21.  
  22.  
  23.  
  24. public void run() {
  25. Thread t = Thread.currentThread();
  26. String name = t.getName(); //Pobierz nazwe watku
  27. while(JavaApplication1.suma<=100) {
  28. Random randomGenerator = new Random();
  29. int randomSkladnik = randomGenerator.nextInt(5)+1; //Generuj liczbe od 1 do 5, w celu uzyskania skladnika sumy
  30. int randomPrzestoj = randomGenerator.nextInt(501); //Generuj liczbe od 0 do 500, w celu uzyskania czasu przestoju w ms
  31. JavaApplication1.suma = JavaApplication1.suma + randomSkladnik;
  32. System.out.println("Watek " + name + " dodal do sumy " + randomSkladnik + " i aktualnie suma wynosi " + JavaApplication1.suma + "."); //Informuj o aktualnej sytuacji w watku
  33. try {
  34. Thread.sleep(randomPrzestoj); //Uspij watek na losowa liczbe sekund
  35. } catch (InterruptedException ex) {
  36. Logger.getLogger(Dodawanie.class.getName()).log(Level.SEVERE, null, ex);
  37. }
  38. }
  39. System.out.println("Koniec pracy watku " + name + ". Suma " + JavaApplication1.suma + "."); //Informuj o zakonczeniu dzialania watku
  40. }
  41. }
  42.  
  43. class Wyswietlanie implements Runnable {
  44.  
  45.  
  46. public void run() {
  47. Thread t = Thread.currentThread();
  48. String name = t.getName(); //Pobierz nazwe watku
  49. while(JavaApplication1.suma<100){
  50. System.out.println("Watek " + name + " raportuje, ze aktualnie suma wynosi " + JavaApplication1.suma + "."); //Informuj o aktualnej sytuacji w watku
  51. try {
  52. Thread.sleep(1000); //Uspij watek na losowa liczbe sekund
  53. } catch (InterruptedException ex) {
  54. Logger.getLogger(Wyswietlanie.class.getName()).log(Level.SEVERE, null, ex);
  55. }
  56.  
  57. System.out.println("Koniec pracy watku " + name + ". Ostatecznie suma wyniosła " + JavaApplication1.suma + "."); //Informuj o zakonczeniu dzialania watku
  58. }
  59. }
  60. }
  61.  
  62. public class JavaApplication1 {
  63.  
  64. public static int suma = 0;
  65.  
  66. public static void main(String[] args) {
  67.  
  68. Runnable runnable = new Dodawanie();
  69. Runnable wyswietlanie = new Wyswietlanie();
  70.  
  71. //Stworz cztery watki, nazwij je
  72. Thread Pierwszy = new Thread(runnable);
  73. Pierwszy.setName("Pierwszy - dodawanie");
  74. Thread Drugi = new Thread(runnable);
  75. Drugi.setName("Drugi - dodawanie");
  76. Thread Trzeci = new Thread(runnable);
  77. Trzeci.setName("Trzeci - dodawanie");
  78. Thread Czwarty = new Thread(wyswietlanie);
  79. Czwarty.setName("Czwarty - wyswietlanie");
  80.  
  81. //Wystartuj watki
  82. Pierwszy.start();
  83. Drugi.start();
  84. Trzeci.start();
  85. Czwarty.start();
  86.  
  87. }
  88. }
Add Comment
Please, Sign In to add comment