多线程的实现

Posted on 2012-09-20 19:27  fishwang  阅读(190)  评论(0)    收藏  举报

在Java中要想实现多线程代码有两种方法,一种是继承thread类,另一种就是实现runnable接口

 

继承Thread类

Thread类是在java.lang包中定义的,一个类只要继承了thread类,此类就称为多线程操作类,在thread子类中,

必须明确的覆写Thread类中的run方法,此方法为线程的主体

线程类的定义如下.

class 类名称 extends thread{

public void run()

}

 

如果要正确地启动线程,是不能直接调用run方法的,而应该是调用从thread类中继承而来的start方法.

在线程启动时虽然调用的是start()方法,但实际上调用的却是run()方法的主体

如果一个类通过继承thread类来实现,那么只能调用一次start方法.

 

实现runnable接口

可以通过实现runnable接口的方式实现多线程,runnable接口中定义了一个抽象方法

public void run();

使用runnable接口实现多线程的格式如下

class 类名称 implements runnable

{

    public void run()

  {

       线程主体.

   }

}

但要想启动一个多线程必须要使用start()方法完成,如果继承了thread类,则可以直接从thread类中使用

start方法,但是现在实现的是runnable接口,那么该如何启动多线程呢,实际上,还是要依靠thread类完成启动.

在thread类中提供了public thread(Runnable target)和public thread(Runnable target,String name)

两个构造方法.

实现runnable接口相对于继承thread类来说,有如下显著的优势

1.适合多个相同程序代码的线程去处理同一资源的情况。

2.可以避免由于java的单继承特性带来的局限.

3.增加了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的.

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3