Concurrency


Java Concurrency in Practice
The Art of Multiprocessor Programming
Seven Concurrency Models in Seven Weeks: When Threads Unravel (The Pragmatic Programmers)
Concurrency in Go: Tools and Techniques for Developers
The Little Book of Semaphores: The Ins and Outs of Concurrency Control and Common Mistakes
C++ Concurrency in Action: Practical Multithreading
Concurrent Programming in Java : Design Principles and Pattern, 2nd Edition
Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming
Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors
Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming
Principles of Concurrent and Distributed Programming
Erlang Programming: A Concurrent Approach to Software Development
Concurrency with Modern C++
Learn Concurrent Programming with Go
The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications
Metaprogramming Elixir by Chris McCordProgramming Elixir by Dave         ThomasTake off with Elixir by Rob ConeryElixir in Action by Saša JurićProgramming Elixir 1.3 by Dave         Thomas
Learning Elixir
12 books — 6 voters

Sometimes abstraction and encapsulation are at odds with performance — although not nearly as often as many developers believe — but it is always a good practice first to make your code right, and then make it fast.
Brian Goetz, Java Concurrency in Practice

From the perspective of a class C, an alien method is one whose behavior is not fully specified by C. This includes methods in other classes as well as overrideable methods (neither private nor final) in C itself. Passing an object to an alien method must also be considered publishing that object. Since you can’t know what code will actually be invoked, you don’t know that the alien method won’t publish the object or retain a reference to it that might later be used from another thread.
Brian Goetz, Java Concurrency in Practice

More quotes...