Java SE Concurrency - Low-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 granular, 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 deeper concepts of concurrent programming, and more detailed aspects of the new Java 1.5 API additions.
Not covered: Everything covered in the Java SE Concurrency - High-Level
exam.
Until the release of Java 1.5, these tools have been powerful but granular, 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 deeper concepts of concurrent programming, and more detailed aspects of the new Java 1.5 API additions.
Not covered: Everything covered in the Java SE Concurrency - High-Level
exam.
| Released | Beta | Frozen | ||
|---|---|---|---|---|
Concepts & Terminology |
|
|||
Terminology 3 questions
Explain the following common concurrency terms and the concepts they define:
|
6 | 84 | 10 | |
Behaviours 1 question
Detail the distinctions between the following concepts
|
3 | 12 | 8 | |
The Java Memory Model
Be able to demonstrate understanding of the Java Memory Model guarantees, and the impact of both optimising and adaptive compilers (such as the Sun HotSpot JVM) on the model
|
|
|||
The volatile keyword 2 questions
|
3 | 21 | 9 | |
Guarantees regarding updates outside synchronized blocks 2 questions
|
7 | 7 | 6 | |
Granularity of 32 bit updates 1 question
|
2 | 10 | 7 | |
Double checked locking 1 question
|
2 | 14 | 4 | |
Collections
Understand some of the less frequently used concurrent extensions to the collections interfaces/implementations
|
|
|||
CopyOnWrite 2 questions
Usage of CopyOnWriteArrayList and CopyOnWriteArraySet
|
5 | 20 | 4 | |
BlockingQueue 2 questions
BlockingQueue implementations, and their distinguishing characteristics:
|
3 | 23 | 6 | |
Synchronizers
Understand more complex two of the four new synchronizer implementations and how to use them
|
|
|||
CyclicBarrier 2 questions
CyclicBarrier usage
|
0 | 29 | 3 | |
Exchanger 2 questions
Exchanger usage
|
1 | 12 | 4 | |
Atomic Classes
Display comprehension of the atomic classes.
|
|
|||
Basic atomic value classes 3 questions
Basic atomic value classes (AtomicInteger, AtomicLong, AtomicReference and AtomicBoolean).
|
2 | 33 | 14 | |
Advanced atomic value classes 1 question
Advanced atomic value classes AtomicStampedReference and AtomicMarkableReference.
Communicate the knowledge of using these less frequently used classes to detect values which may have been updated while still retaining their original value.
|
0 | 9 | 5 | |
Locks
Demonstrate knowledge of the locking facilities
|
|
|||
ReentrantLock 2 questions
ReentrantLock usage
|
1 | 21 | 8 | |
ReentrantReadWriteLock 1 question
ReentrantReadWriteLock usage
|
1 | 18 | 3 | |
Exam information
- 37 minutes
- 25 questions (440)
- 80% required
- +3 √
- - 12 points
- 15 day delay
- status: released



