Multi Threading
1) The earlier days the computers memory is occupied only one program after completion of one program it is possible to execute another program is called uni programming. 

2) Whenever one program execution is completed then only second program execution will be started such type of execution is called co operative execution, this execution we are having lot of disadvantages. 

a. Most of the times memory will be wasted.
b. CPU utilization will be reduced because only program allow executing at a time.
c. The program queue is developed on the basis co operative execution
Java Images
1) Multiprogramming means executing the more than one program at a time. 

2) All these programs are controlled by the CPU scheduler. 

3) CPU scheduler will allocate a particular time period for each and every program. 

4) Executing several programs simultaneously is called multiprogramming. 

5) In multiprogramming a program can be entered in different states.
a. Ready state.
b. Running state.
c. Waiting state. 

6) Multiprogramming mainly focuses on the number of programs.
Advantages of multiprogramming:-
1. CPU utilization will be increased.
2. Execution speed will be increased and response time will be decreased.
3. CPU resources are not wasted.