Suitable for those who are looking to take advantage of multi-core processors with concurrent programming, this practical book provides the knowledge and hands-on experience they need. It focuses on implementing algorithms in the shared-memory model of multi-core processors, rather than theoretical models or distributed-memory architectures.