De som köpt den här boken har ofta också köpt Co-Intelligence av Ethan Mollick (häftad).
Köp båda 2 för 939 kr"The book is largely self-contained, has countless examples, and focuses on what really matters. As such, it is very well suited for both a teaching environment and for practitioners looking for an opportunity to learn about this topic...The book is written in a way that makes multiprocessor programming accessible. This updated version will further confirm its status as a classic." --ComputingReviews.com, 2013
Maurice Herlihy received an A.B. in Mathematics from Harvard University, and a Ph.D. in Computer Science from M.I.T. He has served on the faculty of Carnegie Mellon University, on the staff of DEC Cambridge Research Lab, and is currently a Professor in the Computer Science Department at Brown University. Dr. Herlihy is an ACM Fellow, and is the recipient of the 2003 Dijkstra Prize in Distributed Computing. He shared the 2004 Gdel Prize with Nir Shavit, with whom he also shared the 2012 Edsger W. Dijkstra Prize In Distributed Computing. Nir Shavit received a B.A. and M.Sc. from the Technion and a Ph.D. from the Hebrew University, all in Computer Science. From 1999 to 2011 he served as a member of technical staff at Sun Labs and Oracle Labs. He shared the 2004 Gdel Prize with Maurice Herlihy, with whom he also shared the 2012 Edsger W. Dijkstra Prize in Distributed Computing. He is a Professor in the Electrical Engineering and Computer Science Department at M.I.T. and the Computer Science Department at Tel-Aviv University. Victor Luchangco is a Senior Algorithms Researcher at Algorand in Cambridge, MA, USA. Professor Spear's research interests are broadly in concurrency, programming languages, and computer architecture. His goal is to make it easier for programmers to write correct, scalable applications.
1. Introduction 2. Mutual exclusion 3. Concurrent objects 4. Foundations of shared memory 5. The relative power of synchronization operations 6. Universality of consensus 7. Spin locks and contention 8. Monitors and blocking synchronization 9. Linked lists: The role of locking 10. Queues, memory management, and the ABA problem 11. Stacks and elimination 12. Counting, sorting and distributed coordination 13. Concurrent hashing and natural parallelism 14. Skiplists and balanced search 15. Priority queues 16. Scheduling and work distribution 17. Data parallelism 18. Barriers 19. Optimism and manual memory management 20. Transactional programming Appendix A: Software basics Appendix B: Hardware basics