M2AM
Concurrent
Programming in Java:
Language and Libraries
Doug Lea, SUNY Oswego and
David Holmes, Macquarie University
Who should attend: Anyone involved or planning to get involved in the development of concurrent Java applications or applets. A basic familiarity with the Java language is assumed.
What you will learn: A detailed working knowledge of Java's concurrency mechanisms and an overview of the little-documented aspects of applet and AWT threading models.
Java directly supports concurrent programming. The use of concurrency adds a new dimension of complexity to application development and introduces its own unique set of problems. This course combines a low-level examination of the Java concurrency model with a higher-level look at specific approaches to concurrency control in the context of the Java language, Java applets, and GUI programming using the Abstract Windowing Toolkit.
Topics include:
- Concurrency in Java: a language tutorial
- Java concurrency mechanisms
- Threads: creation, initialization, control
- Synchronization: interference, locks, wait-sets
- Scheduling: priorities, time-slicing, queuing
- Additional language features
- Thread groups: control, management
- Security: security manager, thread restrictions
- Volatile variables: atomicity, caching, volatility
- Inheritance issues
- Inheritance model
- Inheritance anomaly
- Concurrency issues in the Java libraries
- Concurrency in the main Java libraries
- Concurrency in the AWT and applets
- Abstract Windowing Toolkit: structure, thread model, event handling and drawing
- Concurrency in applets: structure, thread model, threading semantics
- Applet security: mechanisms, policies and affects on threading
- Simple design patterns for common applet/AWT threading situations
Doug Lea is a professor and director of the Software Engineering Laboratory at the New York CASE Center. He is author of Concurrent Programming in Java, and co-author of Object-Oriented System Development. He is the author of several widely-used software packages, as well as articles and reports on object-oriented software development.
David Holmes is a PhD candidate with the Microsoft Research Institute at Macquarie University in Sydney, Australia where he researches concurrent object-oriented programming in practical contexts. He has practical experience with concurrent programming through work on operating systems, distributed systems, and real-time embedded systems within a university environment.
Back to Tutorial Overview
|