: Monday Morning Tutorials (8:30 - 12:00) : Languages and Paradigms : Monday : Programming Techniques
Introduction to Concurrent Programming in Java 5.0
Pacific Salon 5
Monday, 8:30, half day
David Holmes, DLTeCH Pty Ltd
Brian Goetz, Quiotix Corp
Tutorial number: 20
Concurrent programming has mostly been the domain of systems programmers rather than application developers, but Java's support for concurrency has enticed many to try their hand at building concurrent applications. Concurrent programming poses many traps for the unwary, however.
This tutorial demonstrates various design patterns and techniques for constructing concurrent applications in Java and for managing that concurrency. On the language side, we examine Java's mechanisms to support concurrent programming, together with some of the more advanced API's from the java.util.concurrent package. On the design side, we explore object structures and design rules that can successfully resolve the competing forces (safety, liveness, efficiency, coordination, reusability) present in concurrent software design problems.
Beginner: It is assumed that the attendee is familiar with basic OO concepts and has a working knowledge of the Java programming language.
David Holmes, DLTeCH Pty Ltd: David Holmes is Director and Chief Scientist of DLTeCH Pty Ltd, located in Brisbane, Australia. His work with Java technology has focused on concurrency and synchronization support in the language and virtual machine and he has most recently been working on a real-time Java virtual machine. David was a member of the JCP Expert Group for JSR-166 "Concurrency Utilities", that shipped in the Java 5.0 release. He has presented tutorials on concurrent Java programming and design at numerous international object-oriented programming conferences over the past eight years. Along with Ken Arnold and James Gosling, he is a co-author of the book "The Java Programming Language" - Third and Fourth Editions. David completed his Ph.D. at Macquarie University, Sydney, in 1999, in the area of synchronization within object-oriented systems.
Brian Goetz, Quiotix Corp: Brian Goetz is a Principal Consultant at Quiotix, a software development and consulting firm in Los Altos, California. He has published over 60 articles on Java development in major industry publications. Brian was a member of the JCP Expert Group for JSR-166 "Concurrency Utilities", that shipped in the Java 5.0 release. He is also a current member of the JCP Expert group for JSR 107 "Java Temporary Caching API". He is a co-author of the book "Java Concurrency in Practice", to be published in October 2005 by Addison-Wesley.