From cloud computing to smartphones, today's highest-growth software environments depend on parallel programming. That's why parallel programming is increasingly viewed as a foundational job skill expected of every professional developer. However, parallel computing requires traditional application developers to think and work differently; that's why it's so often viewed as difficult. In Parallel Programming Patterns , three leading experts cut through the complexity, showing how to "think parallel," and offering practical solutions to many of the challenges you'll encounter. Drawing on immense experience programming parallel systems and teaching others to do so, the authors cover all this, and