logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Threads Comments

  • Question
  • Which of these will create and start this thread?
    public class MyRunnable implements Runnable 
    {
        public void run() 
        {
            // some code here
        }
    }
    


  • Options
  • A. new Runnable(MyRunnable).start();
  • B. new Thread(MyRunnable).run();
  • C. new Thread(new MyRunnable()).start();
  • D. new MyRunnable().start();

  • Correct Answer
  • new Thread(new MyRunnable()).start(); 

    Explanation
    Because the class implements Runnable, an instance of it has to be passed to the Thread constructor, and then the instance of the Thread has to be started.

    A is incorrect. There is no constructor like this for Runnable because Runnable is an interface, and it is illegal to pass a class or interface name to any constructor.

    B is incorrect for the same reason; you can't pass a class or interface name to any constructor.

    D is incorrect because MyRunnable doesn't have a start() method, and the only start() method that can start a thread of execution is the start() in the Thread class.


  • Threads problems


    Search Results


    • 1. Which of the following will directly stop the execution of a Thread?

    • Options
    • A. wait()
    • B. notify()
    • C. notifyall()
    • D. exits synchronized code
    • Discuss
    • 2. What is the name of the method used to start a thread execution?

    • Options
    • A. init();
    • B. start();
    • C. run();
    • D. resume();
    • Discuss
    • 3. Assume the following method is properly synchronized and called from a thread A on an object B:

      wait(2000);

      After calling this method, when will the thread A become a candidate to get another turn at the CPU?


    • Options
    • A. After thread A is notified, or after two seconds.
    • B. After the lock on B is released, or after two seconds.
    • C. Two seconds after thread A is notified.
    • D. Two seconds after lock B is released.
    • Discuss
    • 4. Which will contain the body of the thread?

    • Options
    • A. run();
    • B. start();
    • C. stop();
    • D. main();
    • Discuss
    • 5. Which class or interface defines the wait(), notify(),and notifyAll() methods?

    • Options
    • A. Object
    • B. Thread
    • C. Runnable
    • D. Class
    • Discuss
    • 6. What will be the output of the program?
      public class CommandArgsThree 
      {
          public static void main(String [] args) 
          {
              String [][] argCopy = new String[2][2];
              int x;
              argCopy[0] = args;
              x = argCopy[0].length;
              for (int y = 0; y < x; y++) 
              {
                  System.out.print(" " + argCopy[0][y]);
              }
          }
      }
      
      and the command-line invocation is

      > java CommandArgsThree 1 2 3


    • Options
    • A. 0 0
    • B. 1 2
    • C. 0 0 0
    • D. 1 2 3
    • Discuss
    • 7. What will be the output of the program?
      public class X 
      {
          public static void main(String [] args) 
          {
              String names [] = new String[5];
              for (int x=0; x < args.length; x++)
                  names[x] = args[x];
              System.out.println(names[2]);
          }
      }
      
      and the command line invocation is

      > java X a b


    • Options
    • A. names
    • B. null
    • C. Compilation fails
    • D. An exception is thrown at runtime
    • Discuss
    • 8. What will be the output of the program, if this code is executed with the command line:

      > java F0091 world

      public class F0091 
      {    
          public void main( String[] args ) 
          {  
              System.out.println( "Hello" + args[0] ); 
          } 
      }
      

    • Options
    • A. Hello
    • B. Hello Foo91
    • C. Hello world
    • D. The code does not run.
    • Discuss
    • 9. What will be the output of the program?
      public class CommandArgsTwo 
      {
          public static void main(String [] argh) 
          {
              int x;
              x = argh.length;
              for (int y = 1; y <= x; y++) 
              {
                  System.out.print(" " + argh[y]);
              }
          }
      }
      
      and the command-line invocation is

      > java CommandArgsTwo 1 2 3


    • Options
    • A. 0 1 2
    • B. 1 2 3
    • C. 0 0 0
    • D. An exception is thrown at runtime
    • Discuss
    • 10. What will be the output of the program?
      public class TestDogs 
      {
          public static void main(String [] args) 
          {
              Dog [][] theDogs = new Dog[3][];
              System.out.println(theDogs[2][0].toString());
          }
      }
      class Dog { }
      

    • Options
    • A. null
    • B. theDogs
    • C. Compilation fails
    • D. An exception is thrown at runtime
    • Discuss


    Comments

    There are no comments.

Enter a new Comment