This is meant to show what can go wrong when two or more threads are acting on the same data at once.
int x = 4;
new Thread(this::methodThatIncrementsX()).start();
new Thread(this::methodThatDecrementsX()).start();
- Runs this 1000 times.
5 4 5 4 4 5 5 4 5 4 5 4 5 4 5 4 3 4 3 5 4 5 6 4 3 4 5 6 5 4 3 4 5 4 3 4 5 4 5 4 5 6 4 5 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 6 5 4 3 4 5 6 5 4 5 6 7 6 7 6 5 6 5 6 5 6 5 6 5 4 5 4 3 4 5 4 3 4 3 4 3 2 3 4 5 4 5 4 5 4 5 4 3 5 4 4 3 4 4 3 4 5 4 3 5 3 4 4 5 4 5 6 5 4 5 5 6 4 3 4 5 4 5 4 5 6 5 5 4 6 5 4 5 6 5 6 7 6 5 6 5 4 5 4 3 4 3 4 3 2 3 4 3 4 4 5 5 5 4 4 5 4 5 4 3 4 5 4 5 4 5 6 5 4 5 6 5 6 7 6 5 6 7 6 5 6 5 6 5 4 5 4 3 4 5 4 5 3 4 2 3 4 5 4 5 4 5 4 5 4 3 4 4 3 5 6 5 5 4 4 3 5 4 4 5 4 5 4 5 4 5 4 5 4 5 6 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 3 4 5 4 4 5 6 5 4 5 6 5 4 5 6 5 6 5 4 5 4 5 4 5 6 4 5 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 3 4 3 4 5 4 5 4 5 6 7 6 5 4 3 4 3 4 3 4 5 4 5 6 6 7 5 4 3 4 5 6 5 5 4 4 4 5 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 5 4 6 5 4 5 4 5 4 3 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 3 4 5 4 3 4 5 4 5 5 6 4 5 4 3 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 3 4 3 4 4 5 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 2 3 4 5 4 5 4 5 4 5 4 5 6 5 6 5 4 5 4 5 4 5 4 5 4 3 4 3 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 4 3 5 4 5 4 5 4 5 6 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 6 4 5 5 4 5 4 5 6 4 5 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 3 4 3 4 5 4 5 5 4 6 5 4 3 4 5 4 5 4 5 4 5 4 5 5 6 4 5 4 5 6 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 3 4 5 6 5 6 5 4 3 4 3 4 3 4 5 4 5 4 5 4 4 5 5 4 5 6 4 5 5 4 5 4 5 4 5 6 4 5 4 5 5 4 5 4 5 4 5 4 5 4 3 4 4 3 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 6 5 4 3 4 5 6 5 4 3 2 4 3 3 4 5 4 3 4 5 4 5 4 3 4 3 4 5 4 5 4 3 4 3 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 6 6 4 5 5 5 5 4 5 4 5 4 5 6 5 4 5 4 3 4 5 6 5 4 5 4 5 6 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 6 5 4 3 4 5 4 5 4 3 2 3 3 2 4 5 4 3 4 3 4 3 4 3 4 3 4 3 4 5 4 5 4 5 4 5 4 3 5 4 4 5 4 5 4 5 4 3 4 5 4 3 4 3 4 5 6 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 6 5 6 5 4 5 4 5 4 5 6 5 4 5 4 5 4 3 4 5 4 3 4 5 4 5 4 5 4 5 6 5 6 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 5 4 4 5 6 5 4 5 4 5 6 5 4 3 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 3 4 4 5 4 5 4 5 6 5 4 5 6 5 6 5 4 3 4 5 4 5 4 5 4 5 6 5 4 5 4 3 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 6 5 4 3 4 3 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 6 5 4 5 4 5 5 4 4 5 4 5 4 5 6 7 6 7 5 6 4 5 4 3 4 5 4 5 4 5 4 3 4 5 4 3 4 5 4 5 4 3 4 5 4 3 4 5 4 5 4 5 4 3 4 5 6 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 3 4 4 3 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 4 3 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 3 4 5 6 5 6 5 4 5 6 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 3 4 5 4 5 4 5 5 4 4 3 5 4 4 6 5 4 5 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 2 3 4 3 4 3 4 5 4 5 4 5 6 5 3 4 4 5 6 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 3 2 3 2 3 4 3 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 6 5 4 5 6 5 4 3 4 5 4 5 4 3 4 3 4 3 4 5 4 5 6 5 4 3 4 5 4 5 6 5 4 5 5 4 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 6 5 4 5 4 5 4 5 4 5 4 5 4 5 3 4 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 3 4 5 6 5 6 5 4 5 6 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 5 4 3 4 5 4 5 4 5 4 5 4 5 4 3 4 3 4 3 4 5 6 5 4 5 4 3 4 5 4 5 4 5 4 5 6 5 6 5 6 5 6 5 4 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 7 6 5 6 5 6 5 4 5 4 5 4 5 6 5 6 5 4 5 4 5 4 3 4 3 4 5 4 5 4 3 4 3 4 3 4 5 6 7 8 9 8 7 8 7 8 7 6 5 6 7 6 7 8 7 8 9 8 7 8 9 8 9 8 9 11 9 7 10 6 6 5 8 6 7 9 8 10 5 6 7 8 7 6 5 4 5 4 8 7 6 5 4 5 6 5 3 4 7 6 4 3 4 3 2 3 2 3 2 2 3 3 2 5 1 2 1 2 1 2 3 2 3 6 4 7 5 6 5 4 5 4 5 6 5 4
Process finished with exit code 0
(We started at 4 and ended up with many other values each iteration.)