title: Add numbers using 5 threads
body: <p>Question : I have to create 5 threads where each thread has to perform the addition operation.</p>
  
  <ul>
  <li>Thread1 - Add 1 to 10</li>
  <li>Thread2 - Add 1 to 50</li>
  <li>Thread3 - Add 5 to 15</li>
  <li>Thread4 - Add 10 to 20</li>
  <li>Thread5 - Add 15 to 20</li>
  </ul>
  
  <p>What is the best way to accomplish this?  Also, I need 1 sec time delay between each addition operation. I have written this code: 
  My output is wrong and changing every time. I know problem is with synchronized but not able solve.</p>
  
  <pre><code>class adding implements Runnable{
      int a,b; 
      public adding(int a, int b){
          this.a = a;
          this.b = b;
      }
      public void run() {
          add(a,b);
      }
      public void add(int a, int b){
          int sum=0;
          synchronized (this) {
              for(int i=a;i&lt;=b;i++){
                  sum = sum+ a;
              }
              System.out.println("Sum of "+a+" to "+ b+" numbers = "+sum);    
          }
      }
  }
  
  public class addnumbersusing5threads {
      public static void main(String[] args) {
          Thread t1 = new Thread(new adding(1,10));
          Thread t2 = new Thread(new adding(1,50));
          Thread t3 = new Thread(new adding(5,15));
          Thread t4 = new Thread(new adding(10,20));
          Thread t5 = new Thread(new adding(15,20));
          t1.start();
          t2.start();
          t3.start();
          t4.start();
          t5.start();
      }
  }
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>Sum of 1 to 10 numbers = 10  
  Sum of 1 to 50 numbers = 50 
  Sum of 5 to 15 numbers = 55 
  Sum of 10 to 20 numbers = 110 
  Sum of 15 to 20 numbers = 90 
  </code></pre>