Concurrency: Theory and Practise

General Information


Lecturer:Prof. Dr. Peter Thiemann
Time and Place: Mon 14 - 16, Geb. 51, SR 03-026

Tue 11 - 12, Geb. 51, SR 03-026


Organization:Annette Bieniusa
Exercise sessions: Tue 12 - 13, Geb. 51, SR 03-026
Correction of Exercises:Phillip Heidegger


The lecture is based on the book The Art of Multiprocessor Programming by Maurice Herlihy and Nir Shavit.


This course covers the topics from the following (non-exhaustive) selection:

  • Basics of Mutual exclusion
  • Formal Models of Concurrent Computations
  • Correctness of Concurrent Computations
  • Memory Models
  • Concurrent data structures
  • Scheduling and Work Distribution in Practise
  • Transactional Memory


The slides marked (AMP) are derived from the original slides accompanying the book The Art of Multiprocessor Programming. They are adapted under the Creative Commons Attribution-ShareAlike 3.0 Unported license.

Slides marked * are taken from and used by permission of the authors. They rely partially on material from the book Java Concurrency in Practice (JCIP), Brain Goetz, Addison Wesley 2006.

18.10.10Chapter 1 (AMP)
19.10.10Chapter 2 (AMP)
25.10.10Chapter 2 cont'd, Chapter 3 (AMP)
26.10.10Chapter 3 cont'd
02.11.10Java Memory Model
08.11.10Chapter 7 (AMP)
15.11.10Concurrency in Java *, Sharing objects * cf. JCIP
16.11.10Threads and Tasks cf. JCIP
22.11.10Linked Lists: The Role of Locking (Chapter 9) (AMP)
29.11.10Chapter 10 (AMP)
30.11.10First part of Chapter 12 (AMP)
06.12.10Chapter 12 (AMP)
07.12.10Chapter 13 (AMP)
13.12.10Chapter 13 continued, Chapter 14 (AMP)
14.12.10ForkJoin Framework *
20.12.10Testing of concurrent programs
10.01.11Chapter 16: Futures, Scheduling, and Work Distribution (AMP)
11.01.11Chapter 16
17.01.11Chapter 17: Barriers (AMP), Termination Detection
18.01.11Chapter 17
24.01.11Chapter 18: Transactional Memory (AMP)
31.01.11TinySTM (AMP)
01.02.11Foundations of Shared Memory (AMP)
07.02.11The Power of Consensus (AMP)
08.02.11Unversality of Consensus (AMP)


Exercise sheetSubmission
Just for fun!No Submission
Sheet 102.11.2010
Sheet 223.11.2010
Sheet 314.12.2010
Sheet 411.01.2011


Project description: project.pdf

Peachess: peachess-0.1.2.jar

Strategies: strategy.jar

Tests: tests.jar

Xboard engine: xboard-0.1.2.jar


12.01.2011xboard-0.1.1, peachess-0.1.1Removed bug in communication of pawn promotion between engine and xboard.
12.01.2011xboard-0.1.2, peachess-0.1.2Cleaned up the code and added missing comments. Beware: there are slight changes in the interface due to better structuring and naming.