Concurrent Programming

Jeff Magee

Department of Computing
Imperial College of Science, Technology and Medicine

Thanks to Sun Microsystems for partially funding the development of these pages

The objective of this course is to teach the principles and practice of Concurrent programming using Java to give practical experience of writing multi-threaded programs. The material consists of a set of copies of overhead projector slides with embedded links to Java Applet demonstration programs. The full source of each program can be accessed from the demonstration pages.


  1. Concurrent Processes/Threads
  2. Mutual Exclusion
  3. Monitors
  4. Synchronous Message Communication
  5. More models and monitors



Laboratory Exercise

Copyright 1997 Jeff Magee