title: How is it possible for a program to contain exclusively thread-safe classes, but not be thread-safe?
body: <p>I am reading "java concurrency in practice", and the author says: "A program that consists entirely of thread-safe classes may not be thread-safe". How is this possible? I don't seem to understand, can someone provide an example?</p>