学习线程《三》——多线程

一、Java语言的多线程程序设计方法

利用Java语言实现多线程应用程序的方法很简单。根据多线程应用程序继承或实现对象的不同可以采用两种方式:
         .一种是应用程序的并发运行对象直接继承Java的线程类Thread;
         .另一种方式是定义并发执行对象实现Runnable接口。

(1). 继承Thread类的多线程程序设计方法

Thread 类是JDK中定义的用于控制线程对象的类,在该类中封装了用于进行线程控制的方法。

代码:

import java.util.*;

public class Consumer extends Thread{

      int nTime;

      String strConsumer;

   public Consumer(int nTime, String strConsumer){

      this.nTime = nTime;

      this.strConsumer = strConsumer;

   }

   public void run(){

      while(true){

         try{

             System.out.println("Consumer name:"+strConsumer+" ");

             Thread.sleep(nTime);

         }catch(Exception e) {e.printStackTrace();}

      }

   }

   public static public void main(String args[]){

      Consumer aConsumer = new Consumer (1000, "aConsumer");

      aConsumer.start();

      Consumer bConsumer = new Consumer (2000, "bConsumer");

      bConsumer.start();

      Consumer cConsumer = new Consumer (3000, "cConsumer ");

      cConsumer.start();

   }

}

从上面的程序代码可以看出:多线程执行地下Consumer继承Java语言中的线程类Thread并且在

main方法中创建了三个Consumer对象的实例。当调用对象实例的start方法时,自动调用

Consumer类中定义的run方法启动对象线程运行。线程运行的结果是每间隔nTime时间打印出对

象实例中的字符串成员变量strConsumer的内容。

可以总结出继承Thread类的多线程程序设计方法是使应用程序类继承Thread类并且在该类的

run方法中实现并发性处理过程。

(2).实现Runnable接口的多线程程序设计方法

   Java语言中提供的另外一种实现多线程应用程序的方法是多线程对象实现Runnable接口并

且在该类中定义用于启动线程的run方法。这种定义方式的好处在于多线程应用对象可以继承

其它对象而不是必须继承Thread类,从而能够增加类定义的逻辑性。


实现Runnable接口的多线程应用程序框架代码如下所示:

import java.util.*;

class Consumer implements Runnable {
      int nTime;

      String strConsumer;

   public Consumer(int nTime, String strConsumer){

      this.nTime = nTime;

      this.strConsumer = strConsumer;

   }

   public void run(){

      while(true){

         try{

             System.out.println("Consumer name:"+strConsumer+" ");

             Thread.sleep(nTime);

         }catch(Exception e) {e.printStackTrace();}

      }

   }

   public static public void main(String args[]){

      Thread aConsumer = new Thread(new Consumer(1000, "aConsumer"));

      aConsumer.start();

     
     。 。 。

   }

}



从上述代码可以看出:该类实现了Runnable接口并且在该类中定义了run方法。这种多线程应

用程序的实现方式与继承Thread类的多线程应用程序的 [color=red]重要区别在于

启动多线程对象的方法

设计方法不同。在上述代码中,通过创建Thread对象实例并且将应用对象作为创建Thread类实

例的参数
[/color]


你可能感兴趣的:(jdk,thread,多线程,框架)