that the specific problem you're seeing is probably just output buffering - that is, the
really does happen when you think it should it just doesn't look like it - but here's another issue to consider: what happens if the job to be done takes more than one second? Is it ok to have more than one thread performing this action at the same time?