The document discusses three pillars of concurrency: 1) Responsiveness and isolation through using background threads to avoid blocking the main UI thread. 2) Throughput and scalability by distributing work across multiple threads to maximize all available CPU cores. 3) Consistency by dealing with shared memory access across threads to prevent race conditions and deadlocks, such as through immutable objects, message passing, and transactional memory.