synchronizer token pattern java example