PV168

Transactions


Transactions


Transactions


Atomicity


Consistency


Isolation


Durability


Transactions

@Override
public void importData(String filePath) {
  transactionExecutor.executeInTransaction(() -> {
      // delete data
      // validate import data
      // import all data
  });
}

PV168

Parallelism


Retrospective


Parallelism In Modern Applications


Explicit Parallelism


Monitor

class Counter {
    private int value = 0;
    public synchronized int getValue() {
        return value++;
    }

    public int getSameValue() {
        synchronized(this) {
            return value++;
        }
    }
}

Monitor


Monitor


Explicit Parallelism


Atomic numbers


Atomic numbers

class Counter {
    private AtomicInteger value = new AtomicInteger(0);
    public int getValue() {
        return value.getAndIncrement();
    }
}

Thread Pools


Thread Pools


Thread Pools


Functional Approach


Other


Fibres/Coroutines


Message Passing


Processes