Parallel Programming WS 2014/2015 - File Atomic.java
class Data { private int x, y; public int getX() { return x; } public int getY() { return y; } public void setX(int val) { x = val; } public void setY(int val) { y = val; } } public class Atomic { public static void main(String[] args) { final Data d = new Data(); Runnable r1 = new Runnable() { public void run() { try { Thread.sleep((int) (Math.random() * 100)); } catch (InterruptedException e) {} d.setX(d.getX() + d.getY()); } }; Runnable r2 = new Runnable() { public void run() { try { Thread.sleep((int) (Math.random() * 100)); } catch (InterruptedException e) {} d.setY(d.getX() - d.getY()); } }; for (int i = 0; i < 100; i++) { d.setX(2); d.setY(5); new Thread(r1).start(); new Thread(r2).start(); try { // wait a second Thread.sleep(1000); } catch (InterruptedException e) {} System.out.println("x = " + d.getX() + " y = " + d.getY()); } } }
Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 27.10.2014