The Actor model of programming was presented in 1973 by Carl Hewitt, Peter Bishop, and Richard Steiger. You can find their original paper online and their ideas can be found in many contemporary programming languages, including Erlang and Io.
An actor is an abstract encapsulation of computation that makes it easier to represent multiple concurrent streams of control. One way to see actors is as objects that run in their own dedicated threads; messages are sent asynchronously from actor to actor, and each actor concurrently receives and responds to its messages, often by sending new messages to other actors.
I’ve written a short Nu program that sketches a pattern for actor-oriented programming in Objective-C. Except for its use of Nu blocks (a.k.a. anonymous functions), my entire example could be easily rewritten in Objective-C, and with a certain loss of flexibility, message selectors could be used instead of Nu blocks to build a purely Objective-C solution. But once you’ve seen it in Nu, you may not want to go back.