The Armstrong thesis paper details using the language Erlang when developing a concurrent application. It is notable for its use in switching equipment.
On of the key features in Erlang is its fault tolerance. This is achieved partially by running modules in separate software processes and then only communicating with read only messages. By not sharing data, a crash in one process cannot affect others. This approach would also work with OS processes, although the overhead can be high. Given the right requirements, it may be necessary. While threads are faster, they can typically access all other data in the same process and corrupt it.
Another big theme is building concurrency into the language primitives. While this does ease some of the development, I think a lot of its benefits can be gained through libraries that abstract out the same parts. Putting it in the language itself makes development easier, but possibly at the cost of flexibility. In this case, it is acceptable as the message passing and communication are only allowed in one form.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment