| Threads are useful in many ways: 
             
              In situations where several things must happen at once multi-threading 
                has great appeal. For example, a multimedia application can requre 
                audio, video, and control processes to run in parallel. Similarly, 
                there are often periods of waiting on slow IO systems to respond 
                when the processor could be doing other tasks..
 
Some programs such as server/client systems are much easier 
                to design and write with threads. 
 
Some mathematical algorithms such as sorting, prime searching, 
                etc are suitable for parallel processing.
 
On multiprocessor systems, the JVMs can put threads on different 
                processors and thus obtain true parallel processing and get significant 
                speedups in performance over single processor platforms. In the following sections we will look at examples of programs 
              that use threads. We begin with a simple animation example. We then 
              look at cases with multiple threads and categorize them according 
              to the degree the threads interact with each other.    |