Archive Post

Defining Tasks That Return a Result – Concurrency: Part II

Defining Tasks That Return a Result Implementations of the java.util.concurrent.Callable<V> functional interface represent tasks that…

Submitting Tasks and Handling Task Results – Concurrency: Part II

Submitting Tasks and Handling Task Results Tasks executed by executor services are represented by implementations…

Scheduling One-Shot Tasks – Concurrency: Part II

Scheduling One-Shot Tasks The overloaded schedule() method of the ScheduledExecutorService interface allows either a Runnable…

Task Cancellation 2 – Concurrency: Part II

The scheduledTaskCancellation() method at (13) illustrates how to cancel a submitted task by scheduling a…

The Fork/Join Framework 2 – Concurrency: Part II

Table 23.3 Task-Defining Classes Classes in the java.util.concurrent package to define tasksDescriptionForkJoinTask<V>Abstract class that defines…

The Fork/Join Framework – Concurrency: Part II

23.3 The Fork/Join Framework To harness the benefits of multicore architectures, the Fork/Join Framework in…

Immutability 2 – Concurrency: Part II

All reads and writes are atomic actions for all volatile fields, regardless of whether they…

Atomic Variables 2 – Concurrency: Part II

The while loop ensures that the value is always incremented by 1 from the previous…

Immutability – Concurrency: Part II

Immutability We have seen how to implement thread-safe access to shared resources in synchronized code…

Reentrant Lock 2 – Concurrency: Part II

More details are provided below about the lock acquisition policy implemented by the methods mentioned…