I design thread protection in my components because they are reusable and scalable components designed to work in any environment that I can really expect. Many times they are initially used in a single-thread environment. Often, implementation scales expand to include more threads. Then I do not need to chase resources to protect against new access scenarios.
source
share