Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @author Radzikowski Jakub S16647
- *
- */
- package zad3;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.TimeUnit;
- public class Main {
- public static void main(String[] args) {
- Number number = new Number(5);
- Thread t0 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
- number.changaData(10);
- System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t1 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
- number.changaData(20);
- System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t2 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
- number.changaData(30);
- System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t3 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
- number.changaData(40);
- System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t4 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " r/w reading data: " + number.getData());
- number.changaData(50);
- System.out.println(Thread.currentThread().getName() + " r/w reading data after change : " + number.getData());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t5 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
- number.changeValue(60);
- System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t6 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
- number.changeValue(70);
- System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t7 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
- number.changeValue(80);
- System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t8 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
- number.changeValue(90);
- System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- Thread t9 = new Thread(){
- public void run(){
- try {
- System.out.println(Thread.currentThread().getName() + " reading sync value: " + number.getValue());
- number.changeValue(100);
- System.out.println(Thread.currentThread().getName() + " reading sync value after change: " + number.getValue());
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }};
- long startTime = System.nanoTime();
- ExecutorService executor1 = Executors.newFixedThreadPool(10);
- executor1.submit(t0);
- executor1.submit(t1);
- executor1.submit(t2);
- executor1.submit(t3);
- executor1.submit(t4);
- executor1.shutdown();
- try {
- executor1.awaitTermination(1, TimeUnit.SECONDS);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- long totalTime = System.nanoTime() - startTime;
- System.out.printf("The total time r/w lock actions took was %.3f ms %n", totalTime/1e6);
- long startTime2 = System.nanoTime();
- ExecutorService executor2 = Executors.newFixedThreadPool(10);
- executor2.submit(t5);
- executor2.submit(t6);
- executor2.submit(t7);
- executor2.submit(t8);
- executor2.submit(t9);
- executor2.shutdown();
- try {
- executor2.awaitTermination(1, TimeUnit.SECONDS);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- long totalTime2 = System.nanoTime() - startTime2;
- System.out.printf("The total time synchronized actions took was %.3f ms %n", totalTime2/1e6);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement