You Don’t Know Jack about Shared Variables or Memory Models
Hans‐J. Boehm, Sarita V. Adve · Queue · 2011
A Google search for "Threads are evil" generates 18,000 hits, but threads are ubiquitous. Almost all of the processes running on a modern Windows PC use them. Software threads are typically how programmers get machines with multiple cores to work together to solve problems faster. And often they are what allow user interfaces to remain responsive while the application performs a background calculation.