-2

我想知道如何通过“扩展 Thread 类”来创建多个线程。我知道它是如何使用“Runnable”完成的。请告诉我如何通过“扩展线程类”来完成。

4

1 回答 1

8

主要方法

public class ThreadDemo 
{   

  public static void main(String args[])    
  {         

    //Creating an object of the first thread        
    FirstThread   firstThread = new FirstThread();              

    //Creating an object of the Second thread       
    SecondThread   secondThread = new SecondThread();               

    //Starting the first thread         
    firstThread.start();                

    //Starting the second thread        
    secondThread.start();   
  } 
}

通过扩展“Thread”类,该类被制成线程。

public class FirstThread extends Thread 
{ 
  //This method will be executed when this thread is executed 
  public void run() 
  { 

    //Looping from 1 to 10 to display numbers from 1 to 10 
     for (int i=1; i<=10; i++) 
     { 
        //Displaying the numbers from this thread 
        System.out.println( "Messag from First Thread : " +i); 

        /*taking a delay of one second before displaying next number 
        * 
        * "Thread.sleep(1000);" - when this  statement is executed, 
        * this thread will sleep for 1000  milliseconds (1 second) 
        * before executing the next statement. 
        * 
        * Since  we are making this thread to sleep for one second, 
        * we need to handle  "InterruptedException". Our thread 
        * may throw this exception if it is  interrupted while it 
        * is sleeping. 
        * 
        */
        try
        { 
           Thread.sleep(1000); 
        } 
        catch (InterruptedException  interruptedException) 
        { 
          /*Interrupted exception will be thrown when a sleeping or  waiting 
          * thread is interrupted. 
          */
          System.out.println(  "First Thread is interrupted when it is  sleeping" +interruptedException); 
        } 
      } 
   }

通过扩展“Thread”类,该类被制成线程。

public class SecondThread extends Thread 
{   

  //This method will be executed when this thread is executed   
  public void run()     
  {             
    //Looping from 1 to 10 to display numbers from 1 to 10      
    for (int i=1; i<=10; i++)        
    {           
       System.out.println( "Messag from Second Thread : " +i);                      
       /*taking a delay of one second before displaying next number
       * "Thread.sleep(1000);" - when this statement is executed,
       * this thread will sleep for 1000 milliseconds (1 second) 
       * before executing the next statement.             
       *              
       * Since we are making this thread to sleep for one second,
       * we need to handle "InterruptedException". Our thread
       * may throw this exception if it is interrupted while it 
       * is sleeping.             
       */          
       try         
       {                
          Thread.sleep (1000);          
       }            
       catch (InterruptedException interruptedException)            
       {                
          /*Interrupted exception will be thrown when a sleeping or waiting
           *thread is interrupted.               
           */              
           System.out.println( "Second Thread is interrupted when it is sleeping" +interruptedException);           
       }        
    }   
  }
}

请查看 Reference # Threading using Extend以获得完整的详细信息,以快速阅读上述参考中的即时发布代码

于 2013-10-02T06:00:16.343 回答