Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
Exploring the concurrency of an MPEG RVC decoder based on dataflow program analysis
IEEE Transactions on Circuits and Systems for Video Technology
Multi-core code in a cluster – a meaningful option?
GPC'10 Proceedings of the 5th international conference on Advances in Grid and Pervasive Computing
Hi-index | 0.00 |
Have you ever devised what you thought was a good solution to a really difficult problem, only to find that the answer would've been almost trivial with a different tool or approach? One of the primary reasons concurrency is so hard is that popular imperative programming languages such as Java and C++ essentially require state to be shared among threads. With multiple threads running on multiple CPUs, more than one program pathway can be active simultaneously, and without the appropriate safeguards in place, the threads can read partial values and overwrite each other's data, resulting in bogus values and application instability. One way to avoid the problems with shared state is to simply avoid it, but that's impractical in a language like C++ or Java. A better way to avoid shared state is to switch to a programming language specifically designed to do exactly that. Erlang is one such language.