The document discusses various techniques for achieving thread safety in concurrent programs without using synchronization primitives like mutexes. It covers immutable objects, compare-and-swap for lock-free updates, volatile piggybacking for visibility of non-volatile writes, and thread confinement to restrict data access to a single thread. Specific examples are provided to illustrate immutability, effective immutability, and the differences between volatile variables and atomic classes. Precautions are noted for fragile techniques like volatile piggybacking that only ensure visibility and not compound atomicity.