Provide two programming examples of multithreading giving improved performance over a single-threaded solution.
(1) A Web server that services every request in a separate thread.
(2) A parallelized application such as matrix multiplication where dissimilar parts of the matrix may be worked on in parallel.
(3) An interactive GUI program like a debugger where a thread is used to monitor user input, another thread shows the running application, and a third thread monitors performance.