线程创建实现

(一)线程的定义

在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。

(二)创建线程的方式(继承Thread类 与实现Runnable接口

1   继承Thread类 

          public  class 类名 extends Thread{

                   public  类名() {

                         //编写子类的构造方法,可省略

                   }

                  属性     //声明子类的数据成员

                  方法     //定义子类自己的方法

                   public void run() {

                         //重写Thread类的run方法

                    }

          }

     用继承Thread类的子类创建线程对象:子类类名  对象名 = new 子类类名();

     子类对象名.start(); ——start()的作用是使该线程开始执行,JAVA虚拟机调用该线程的run方法。

 2   实现Runnable接口

用Runnable接口来创建线程就是在一个类中实现Runnable接口,并在该类中重写run方法。

创建线程的步骤如下:

(1) 生成Runnable接口的类的实例化对象

   class RunnableSub implements Runnable

    RunnableSub rs=new RunnableSub();    ——注意:rs并不是线程对象,只是一个普通的类对象

(2 )用带有Runnable参数类型的Thread类构造方法创建线程对象

  Thread t = new Thread(rs); ——注意:创建真正的线程对象时必须用带有Runnable参数的Thread类创建的对象,例如 t就是线程对象

(3 )启动线程

    t.start();

3 两种方式的区别

   实现Runnable接口除了拥有和继承Thread类一样的功能外,还具有以下功能。

(1)适合多个相同程序代码的线程处理同一资源的情况,可以把线程同程序中的数据有效分离,较好的体现了面向对象的设计思想。

(2)可以避免由于JAVA的单继承特性带来的局限。例如,class Student已经继承了class Person,如果要把Student类放入多线程中去,就不能使用继承Thread类的方式。因为在JAVA中规定一个类智能有一个父类,不能同时有两个父类,所以只能使用实现Runnable接口的方式了。

(3)增强了代码的健壮性,代码能够被多个线程共同访问,代码和数据时独立的。多个线程可以操作相同的数据,与它们的代码无关。当线程被构造时,需要的代码和数据通过一个对象作为构造函数实参传递进去,这个对象就是一个实现了Runnable接口的类的实例。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值