Statement A is correct.
While one thread waits for I/O or communication, another ready thread may perform useful work.
Statement B is incorrect.
Threads can improve responsiveness and overlap I/O with computation even on a single-core system.
A single core provides concurrency through interleaved execution, although it cannot provide simultaneous parallel execution.
Statement C is incorrect.
User-level threads may have lower management overhead, but kernel-level threads allow independent kernel scheduling and true parallel execution on multiple cores.
Statement D is correct.
Dispatcher and worker-thread structures are commonly used to divide request acceptance from request processing.