Channels ▼   When Tasks Replace Objects  In a previous
editorial, I posed the question: Why is it that we do not use
task-oriented parallelism more frequently? Several readers were
kind enough to write in and point out that, in fact, this form
of parallelism is alive and well. I have no doubt about that.
The question I want to pursue is why is it not more common,
given that it tends to do away with many of the problems created
by mutual-exclusion-based parallelism?  Probably the most widely
used model of task-based parallelism is implemented via actors.
As I have discussed in previous columns, actors are small
kernels of computation that are complete unto themselves
(generally implemented as a thread with an attached mailbox that
serves as a message and task queue). In this model, the actors
represent discrete tasks to which data is sent for processing.
Because the actors communicate only with other actors and do so
only through incoming and outgoing messages, there is no
interference between threads and most