Answer D) Asynchronous
Synchronous Threading means that, A thread is assigned to one task and starts working on it. Once the task completes then it is available for the next task. In this model, it cannot leave the executing task in mid to take up another task. Moreover, in multithreading in synchronous mode, 1 task can be handled by 1 thread only.
Asynchronous threading means, a thread once start executing a task it can hold it in mid, save the current state and start executing another task. In multithreading asynchronous environment, 1 task can be handled by more than 1 thread.
Java uses thread to enable Asynchronous threading to improve cpu efficiency.