When we should use threads in our application. In other words, when should I convert a single threaded application to multi-threaded application. Being a developer, I think
Main usage of multithreading is, when there is a requirement for parallel code flows.
Best Example I can give is ball breaker game, in which you have to run an animation to show the ball is moving and take inputs from the user to move the bat.
Here you will run the animation on a thread and interact with the user on other thread. Which can't be solved by a single thread application.