A thread is a sequence of instructions that run independently of the program and of any other threads.
Using threads, a multi-threaded server program can accept a connection from a client,
start a thread for that communication,
and continue listening for requests from other clients.