Java SE Concurrency - High-Level
Java is one of the few languages designed from inception to support concurrency without the requirement for additional libraries. Tools for the management of concurrent programming have been available from the very first releases of the language, providing both syntactic and API support.
Until the release of Java 1.5, these tools have been powerful but primitive, a developer having the facilities to synchronize on monitors at a class, instance and nominated Object level, combined with the functionality provided by Object, Thread, ThreadGroup and ThreadLocal classes.
With the advent these packages in the Java 1.5 release:
This examination will seek to test the examinee's knowledge of the high-level concepts of concurrent programming, and higher-level aspects of both the pre 1.5 API toolset, and the new Java 1.5 API additions.
Although the synchronized keyword and the Object.wait(), notify() and notifyAll() methods are considered low-level, as their usage is so prevalent in existing code bases, an exception has been made and thus they are included in this high-level exam.
Notes:
Until the release of Java 1.5, these tools have been powerful but primitive, a developer having the facilities to synchronize on monitors at a class, instance and nominated Object level, combined with the functionality provided by Object, Thread, ThreadGroup and ThreadLocal classes.
With the advent these packages in the Java 1.5 release:
- java.util.concurrent
- java.util.concurrent.atomic
- java.util.concurrent.locks
This examination will seek to test the examinee's knowledge of the high-level concepts of concurrent programming, and higher-level aspects of both the pre 1.5 API toolset, and the new Java 1.5 API additions.
Although the synchronized keyword and the Object.wait(), notify() and notifyAll() methods are considered low-level, as their usage is so prevalent in existing code bases, an exception has been made and thus they are included in this high-level exam.
Notes:
- This exam does not cover the areas covered in the Java SE Concurrency - Low-Level
exam.
- The exam objectives and questions are written for Java 1.5 API release.
| Released | Beta | Frozen | ||
|---|---|---|---|---|
Concepts & Terminology
Be able to explain what concurrent programming is, what it is used for, and the meanings of the associated terminology.
|
|
|||
Terminology 2 questions
Be able to define the following terms:
|
5 | 55 | 25 | |
Behaviours 1 question
Explain the distinctions between:
|
1 | 14 | 6 | |
Synchronized, wait and notify |
|
|||
Monitor identification 1 question
Describe synchronization, and be able to identify which object is supplying the implicit monitor for synchronization in each case:
|
1 | 62 | 9 | |
Synchronization behaviour 1 question
Describe the behaviour of the following methods:
And with regard to these methods:
|
4 | 78 | 6 | |
Interfaces & Enums 2 questions
Define the responsibilities and uses of the following interfaces
|
4 | 17 | 12 | |
Implementations |
|
|||
Threads & ThreadGroups 2 questions
Be able to write a running Thread by either:
|
2 | 72 | 18 | |
Executors factory 2 questions
Explain the usage of the Executors factory to create the following ExecutorService implementations:
|
1 | 10 | 10 | |
Monitoring tasks 2 questions
In order to use the ExecutorService implementations, show how to correctly implement and use:
|
2 | 12 | 9 | |
Task management 2 questions
Understand the responsibilities of the following interfaces
|
4 | 8 | 8 | |
Collections
Covering the less complex concurrent collections extensions
|
|
|||
Maps 2 questions
|
2 | 5 | 9 | |
Queues 3 questions
|
5 | 11 | 12 | |
Iterators 1 question
Identify the changes to the concurrent Iterator implementations:
|
4 | 3 | 4 | |
Synchronizers
Detail the behaviour of two of the new synchronizer implementations, how to use them, and how they differ
|
|
|||
Semaphore 2 questions
|
3 | 12 | 13 | |
CountDownLatch 2 questions
|
5 | 5 | 6 | |
Exam information
- 37 minutes
- 25 questions (554)
- 80% required
- +3 √
- - 12 points
- 15 day delay
- status: released



