Elise Huard 3.5
Computers are being built with more and more CPUs and those CPUs in turn have several cores. Powerful calculations are now performed either on many-cored machines, or on distributed systems. In this context, it's in the developer's interest to start thinking about concurrent programming. But concurrent programming is tricky - one has to deal with race conditions, locks, anything to do with shared state. The last few years have shown that very few developers get this right when faced with conventional shared state threads.