Q1. What is multi-threading and why do desktop apps need it?
Multi-threading means an application runs more than one sequence of instructions at the same time, each sequence called a thread. Desktop apps need it because the main thread is responsible for drawing the screen and responding to input, so any long task (file I/O, image processing, network calls) that runs on the main thread freezes the UI until it finishes. Moving that work to a background thread keeps the interface responsive, which is what users experience as a "fast" app.