Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Concurrent Systems and Applications
Computer Laboratory > Course material 2002-03 > Concurrent Systems and Applications

Concurrent Systems and Applications

Principal lecturer: Dr Timothy Harris (
Taken by: Part IB


This 24-lecture course covers principles and techniques used in structuring and implementing multi-threaded and distributed software systems.

Study materials

The slides identify which of the past exam questions remain relevant to this course and the point at which you should be able to complete each of the questions. The slides also contain additional questions pitched at a range of levels.


  • Slide 2.11 should say that line 9 fails at run-time (as indicated in the comments in the code) rather than line 6
  • On slide 3.7 the getName method should be defined as return name rather than return String
  • On slide 3.15 the interfaceMethod defined within the anonymous inner class should be marked public (methods defined on interfaces are implicitly public and so their implementations in classes must also be)
  • The command line syntax in exercise 6.1 is incorrect for current JVM implementations. The correct syntax is -XmxSIZE, for example -Xmx25M to configure a 25M heap.
  • Line 6 of the example native method code on slide 9.5 is missing the name of the second parameter and a closing bracket.
  • On slide 9.7 the phrase parent class loader should be typeset in bold, not in courier
  • Exercise 9.4 should indicate that getS is a static method
  • Exercise 12.5 should call the method on the Operation interface something like doOp because do is a Java keyword and cannot be used as a method name
  • On slide 13.3 the loop should wait while (!full) { ... } rather than while (full) { ... } -- it is waiting until an item can be removed from the buffer and so must wait while the buffer is not full
  • Slide 16.9, eunm should be enum (as on 16.8)
  • Exercise 21.1 should refer to the "system described in question 20.2" rather than to 19.2.
  • The Barrier class on the Examples Class handout should have the line waitingA=false in the enterB method and waitingB=false in the enterA method (i.e. swapped over from the way they are printed)


The source code files are also available under $CLTEACH/tlh20 on the PWF Linux machines. The Eclipse IDE is also available there. Additional material: