Following the analogy of basic ground rules, here I'm trying to come up with a similar list for multithreading.
- Nothing is thread safe unless effort has been made to make it thread safe.
- You can't assume that composition of two thread safe operations (
g(f());
) or objects is thread safe itself. This is a special case of the rule 1.