Otherwise, each new request would not get serviced until the previous request had been fully satisfied.However, the asynchronous nature of threads means that access to resources such as file handles, network connections, and memory must be coordinated.