Contents Introduction Separate objects Synchronization Duels Practical considerations Concurrency for the rest of us For more details Introduction Five philosophers are seated around a table. There is also no need to state what concurrent architecture you are using.
Concurrent programming comes in many flavors.
What gets many people excited these days is multithreading, and indeed the philosophers and forks in this example can be assigned to threads on a multithreaded operating system. The processes can be on different computers on a local network. A process can be running in Santa Barbara and one in Tokyo, communicating through the Internet. Indeed the model sketched in this article will cover all these forms of concurrency, from multithreading to client-server computing to distributed processing to Internet programming. You will design your application as a network of concurrent objects, and decide separately how to map the virtual concurrency to the concurrent resources physically available.