Home / Java Programming / Threads :: Finding the output

Java Programming :: Threads

  1. What will be the output of the program?

    class MyThread extends Thread 
     {    
       MyThread()    
       {       
            System.out.print(" MyThread");         
       }  
       public void run()  
       {       
            System.out.print(" bar"); 
        }    
        public void run(String s)     
        {      
             System.out.println(" baz"); 
        } 
      }
      public class TestThreads  
      {   
         public static void main (String [] args)     
         {
             Thread t = new MyThread()                 
              {   
                 public void run()                
                 {                              
    
                   System.out.println(" foo");             
                  }        
               };        
               t.start();   
           } 
        } 
    

  2. A.

    foo

    B.

    MyThread foo

    C.

    MyThread bar

    D.

    foo bar


  3. What will be the output of the program?

     class MyThread extends Thread 
     {     
        public static void main(String [] args)   
        {       
             MyThread t = new MyThread();         
             t.start();              
             System.out.print("one. ");         
             t.start();         
             System.out.print("two. ");   
         }    
         public void run()    
         {       
             System.out.print("Thread ");       
         }   
      } 

     

     

     

     

  4. A.

    Compilation fails

    B.

    An exception occurs at runtime.

    C.

    It prints "Thread one. Thread two."

    D.

    The output cannot be determined.


  5. What will be the output of the program?

     class MyThread extends Thread 
     {    
         MyThread() {}    
         MyThread(Runnable r) {super(r); }      
         public void run()   
         {        
              System.out.print("Inside Thread);   
         }  
      } 
      class MyRunnable implements Runnable  
      {    
         public void run()     
         {          
            System.out.print(" Inside Runnable");      
         }  
      }  
      class Test
      {     
          public static void main(String[] args)    
          {       
             new MyThread().start();               
             new MyThread(new MyRunnable()).start();  
          }  
       } 
    

  6. A.

    Prints "Inside Thread Inside Thread"

    B.

    Prints "Inside Thread Inside Runnable"

    C.

    Does not compile

    D.

    Throws exception at runtime


  7. What will be the output of the program?

      class s1 implements Runnable
      {    
         int x = 0, y = 0;  
         int addX() {x++; return x;}   
         int aadY() {y++; return y;}      
         public void run() {  
         for(int i = 0; i 10; i++)                     
            system.out.println(addX() + " " + addY());
       }   
          public static void main(String args[])     
          {       
             s1 run1 = new s1();    
             s1 run2 = new s1();             
             Thread t1 = new Thread(run1);        
             Thread t2 = new Thread(run2);          
             t1.start();    
             t2.start();   
       }  
    }
    

  8. A.

    Compile time Error: There is no start() method

    B.

    Will print in this order: 1 1 2 2 3 3 4 4 5 5...

    C.

    Will print but not exactly in an order (e.g: 1 1 2 2 1 1 3 3...)

    D.

    Will print in this order: 1 2 3 4 5 6... 1 2 3 4 5 6...


  9. What will be the output of the program?

     public class Q126 implements Runnable
     {     
         private int x;   
         private int y;    
    
         public static void main(String [] args)      
         {     
            Q126 that = new Q126();            
            (new Thread(that)).start( ); /* Line 8 */  
            (new Thread(that)).start( ); /* Line 9 */    
     }     
     public synchronized void run( ) /* Line 11 */  
     {    
          for (;;) /* Line 13 */    
          {   
               x++;     
               y++;              
               System.out.println("x = " + x + "y = " + y);         
          }     
       }  
    } 
    

  10. A.

    An error at line 11 causes compilation to fail

    B.

    Errors at lines 8 and 9 cause compilation to fail.

    C.

    The program prints pairs of values for x and y that might not always be the same on the same line (for example, "x=2, y=1")

    D.

    The program prints pairs of values for x and y that are always the same on the same line (for example, "x=1, y=1". In addition, each value appears once (for example, "x=1, y=1" followed by "x=2, y=2")


  11. What will be the output of the program?

     class s1 extends Thread
     {   
        public void run()     
        {         
           for(int i = 0; i 3; i++)        
           {
                System.out.println("A");                  
                system.out.println("B");          
           }    
        }  
    } 
     class Test120 extends Thread  
    {    
      public void run() 
      {     
         for(int i = 0; i 3; i++)   
         {              
                System.out.println("C");              
                System.out.println("D");             
          }    
       }   
       public static void main(String args[])                 
          {       
          s1 t1 = new s1();   
          Test120 t2 = new Test120();          
          t1.start();     
          t2.start();     
       }  
    } 

     

  12. A.

    Compile time Error There is no start() method

    B.

    Will print in this order AB CD AB...

    C.

    Will print but not be able to predict the Order

    D.

    Will print in this order ABCD...ABCD...


  13. What will be the output of the program?

     class s implements Runnable 
     {   
         int x, y;  
         public void run()    
         {     
             for(int i = 0; i 1000; i++)                
                synchronized(this)              
                {         
                    x = 12;         
                    y = 12;        
                }       
             System.out.print(x + " " + y +");     
        }   
        public static void main(String args[])       
        {    
              s run = new s();  
              Thread t1 = new Thread(run);          
              Thread t2 = new Thread(run);          
              t1.start();     
              t2.start();   
        } 
     } 
    

     

  14. A.

    DeadLock

    B.

    It print 12 12 12 12

    C.

    Compilation Error

    D.

    Cannot determine output.


  15. What will be the output of the program?

     public class ThreadDemo 
     {    
         private int count = 1;   
         public synchronized void doSomething()    
         {        
             for (int i = 0; i 10; i++)                         
                 System.out.println(count++);      }    
    public static void main(String[] args)      {       
         ThreadDemo demo = new ThreadDemo();             
         Thread a1 = new A(demo);          
         Thread a2 = new A(demo);          
         a1.start();  
         a2.start();  
        } 
      }
      class A extends Thread
      {
          ThreadDemo demo;   
          public A(ThreadDemo td)    
          {      
             demo = td;  
          }      
          public void run()     
          {       
             demo.doSomething();    
          }      
       } 
    

  16. A.

    It will print the numbers 0 to 19 sequentially

    B.

    It will print the numbers 1 to 20 sequentially

    C.

    It will print the numbers 1 to 20, but the order cannot be determined

    D.

    The code will not compile.


  17. What will be the output of the program?

      public class WaitTest
      {  
         public static void main(String [] args)    
          {     
             System.out.print("1 ");           
             synchronized(args)   
             {      
                System.out.print("2 ");                 
                try   
                {                     
                   args.wait(); /* Line 11 */               
                }               
              catch(InterruptedException e){ }           
          }       
          System.out.print("3 "); 
        } 
     } 
    

  18. A.

    It fails to compile because the IllegalMonitorStateException of wait() is not dealt with in line 11.

    B.

    1 2 3

    C.

    1 3

    D.

    1 2


  19. What will be the output of the program?

    public class SyncTest 
     {     public static void main (String [] args)    
           {     
              Thread t = new Thread()           
              { 
                 Foo f = new Foo();             
                 public void run()              
                 {                 
                    f.increase(20);             
                 }     
              };    
           t.start();     
            }
         } 
         class Foo 
         {   
            private int data = 23;   
            public void increase(int amt)      
            {  
                 int x = data;  
                 data = x + amt;    
            }
         } 
    

    and assuming that data must be protected from corruption, what€”if anything€”can you add to the preceding code to ensure the integrity of data?

     

  20. A.

    Synchronize the run method.

    B.

    Wrap a synchronize(this) around the call to f.increase().

    C.

    The existing code will cause a runtime exception.

    D.

    Synchronize the increase() method