background image

1. Java 多线程程序设计初步

 线程的创建

 

  我们知道

Java 是面向对象的程序语言,用 Java 进行程序设计就是设计和使用类,Java

为我们提供了线程类

Thread 来创建线程,创建线程与创建普通的类的对象的操作是一样的 ,

而线程就是

Thread 类或其子类的实例对象。下面是一个创建启动一个线程的语句: 

  

Thread thread1=new Thread(); file://声明一个对象实例,即创建一个线程; 

  

Thread1.run(); file://用 Thread 类中的 run()方法启动线程; 

  从这个例子,我们可以通过

Thread()构造方法创建一个线程,并启动该线程。事实上,

启动线程,也就是启动线程的

run()方法,而 Thread 类中的 run()方法没有任何操作语句,

所以这个线程没有任何操作。要使线程实现预定功能,必须定义自己的

run()方法。Java 中通

常有两种方式定义

run()方法: 

  通过定义一个

Thread 类的子类,在该子类中重写 run()方法。Thread 子类的实例对象就

是一个线程,显然,该线程有我们自己设计的线程体

run()方法,启动线程就启动了子类中

重写的

run()方法。 

  通过

Runnable 接口,在该接口中定义 run()方法的接口。所谓接口跟类非常类似,主要

用来实现特殊功能,如复杂关系的多重继承功能。在此,我们定义一个实现

Runnable() 接口

的类,在该类中定义自己的

run()方法,然后以该类的实例对象为参数调用 Thread 类的构造

方法来创建一个线程。

 

  线程被实际创建后处于待命状态,激活(启动)线程就是启动线程的

run()方法,这是

通过调用线程的

start()方法来实现的。 

  下面一个例子实践了如何通过上述两种方法创建线程并启动它们:

 

  

// 通过 Thread 类的子类创建的线程; 

   

class thread1 extends Thread 

    

{ file://自定义线程的 run()方法; 

     

public void run()