Multithreaded programming has uses even when you are running the application on a single threaded environment. Some of the examples I am aware of are :
a. GUI programming. Say you click on a button on GUI and it triggers a background process that would take some time to complete. With multithreading the background task can be done in a separate
thread and GUI can be responsive to user inputs. Without multithreading in such cases the GUI would appear frozen to the user
b. Webserver: Webservers typically serve a lot of requests, and it can span a new thread to service a request and the main thread can continue
to wait for any new incoming requests.