Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.44 KB | None | 0 0
  1. /**
  2. *
  3. * @author Radzikowski Jakub S16647
  4. *
  5. */
  6.  
  7. package zad3;
  8.  
  9. import java.util.concurrent.ExecutorService;
  10. import java.util.concurrent.Executors;
  11. import java.util.concurrent.TimeUnit;
  12.  
  13. public class Main {
  14.  
  15. public static void main(String[] args) {
  16.  
  17. Number number = new Number(5);
  18.  
  19. Thread t0 = new Thread(){
  20. public void run(){
  21. try {
  22. System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
  23. number.changaData(10);
  24. System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
  25. Thread.sleep(1000);
  26. } catch (InterruptedException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. }};
  31.  
  32. Thread t1 = new Thread(){
  33. public void run(){
  34. try {
  35. System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
  36. number.changaData(20);
  37. System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
  38. Thread.sleep(1000);
  39. } catch (InterruptedException e) {
  40. // TODO Auto-generated catch block
  41. e.printStackTrace();
  42. }
  43. }};
  44.  
  45. Thread t2 = new Thread(){
  46. public void run(){
  47. try {
  48. System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
  49. number.changaData(30);
  50. System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
  51. Thread.sleep(1000);
  52. } catch (InterruptedException e) {
  53. // TODO Auto-generated catch block
  54. e.printStackTrace();
  55. }
  56. }};
  57.  
  58. Thread t3 = new Thread(){
  59. public void run(){
  60. try {
  61. System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
  62. number.changaData(40);
  63. System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
  64. Thread.sleep(1000);
  65. } catch (InterruptedException e) {
  66. // TODO Auto-generated catch block
  67. e.printStackTrace();
  68. }
  69. }};
  70.  
  71. Thread t4 = new Thread(){
  72. public void run(){
  73. try {
  74. System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
  75. number.changaData(50);
  76. System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
  77. Thread.sleep(1000);
  78. } catch (InterruptedException e) {
  79. // TODO Auto-generated catch block
  80. e.printStackTrace();
  81. }
  82. }};
  83.  
  84. Thread t5 = new Thread(){
  85. public void run(){
  86. try {
  87. System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
  88. number.changeValue(60);
  89. System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
  90. Thread.sleep(1000);
  91. } catch (InterruptedException e) {
  92. // TODO Auto-generated catch block
  93. e.printStackTrace();
  94. }
  95. }};
  96.  
  97. Thread t6 = new Thread(){
  98. public void run(){
  99. try {
  100. System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
  101. number.changeValue(70);
  102. System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
  103. Thread.sleep(1000);
  104. } catch (InterruptedException e) {
  105. // TODO Auto-generated catch block
  106. e.printStackTrace();
  107. }
  108. }};
  109.  
  110. Thread t7 = new Thread(){
  111. public void run(){
  112. try {
  113. System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
  114. number.changeValue(80);
  115. System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
  116. Thread.sleep(1000);
  117. } catch (InterruptedException e) {
  118. // TODO Auto-generated catch block
  119. e.printStackTrace();
  120. }
  121. }};
  122.  
  123. Thread t8 = new Thread(){
  124. public void run(){
  125. try {
  126. System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
  127. number.changeValue(90);
  128. System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
  129. Thread.sleep(1000);
  130. } catch (InterruptedException e) {
  131. // TODO Auto-generated catch block
  132. e.printStackTrace();
  133. }
  134. }};
  135.  
  136. Thread t9 = new Thread(){
  137. public void run(){
  138. try {
  139. System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
  140. number.changeValue(100);
  141. System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
  142. Thread.sleep(1000);
  143. } catch (InterruptedException e) {
  144. // TODO Auto-generated catch block
  145. e.printStackTrace();
  146. }
  147. }};
  148.  
  149. long startTime = System.nanoTime();
  150. ExecutorService executor1 = Executors.newFixedThreadPool(10);
  151. executor1.submit(t0);
  152. executor1.submit(t1);
  153. executor1.submit(t2);
  154. executor1.submit(t3);
  155. executor1.submit(t4);
  156. executor1.shutdown();
  157. try {
  158. executor1.awaitTermination(1, TimeUnit.SECONDS);
  159. } catch (InterruptedException e) {
  160. // TODO Auto-generated catch block
  161. e.printStackTrace();
  162. }
  163. long totalTime = System.nanoTime() - startTime;
  164. System.out.printf("The total time r/w lock actions took was %.3f ms %n", totalTime/1e6);
  165.  
  166. long startTime2 = System.nanoTime();
  167. ExecutorService executor2 = Executors.newFixedThreadPool(10);
  168. executor2.submit(t5);
  169. executor2.submit(t6);
  170. executor2.submit(t7);
  171. executor2.submit(t8);
  172. executor2.submit(t9);
  173. executor2.shutdown();
  174. try {
  175. executor2.awaitTermination(1, TimeUnit.SECONDS);
  176. } catch (InterruptedException e) {
  177. // TODO Auto-generated catch block
  178. e.printStackTrace();
  179. }
  180. long totalTime2 = System.nanoTime() - startTime2;
  181. System.out.printf("The total time synchronized actions took was %.3f ms %n", totalTime2/1e6);
  182.  
  183.  
  184. }
  185.  
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement