counter.zip: JavaFX
project showing what happens if you have unprotected
counters. Add synchronized operations
in UpCounterA.java and UpCounterB.java to improve the
behavior, but note that there are still GUI errors due to form updates not
being "thread safe"; would need to use Platform.runLater
in valueOf and setTo to avoid this problem; eg:
Platform.runLater(() -> {target.setText(value + "");})