JAVA线程简析

1.1 创建线程

Java语言内建了对多线程开发的支持,每个线程都是一个Java.lang.Thread类的实例。因此,要创建一个线程实例,只需要定义一个继承于Thread类的子类即可。例如,下面的代码就创建了一个银行的职员类,实例代码如下:

public class Clerk  extends Thread{
    public Clerk(String name){
        super(name);
    }
    public void run(){
        super.run();//添加具体的工作代码
    }
}
  1. 在该代码中,Clerk继承了父类Thread,表明了它是一个线程类;
  2. 基于Java单继承的特点,利用这种方法定义的类不能在继承其他父类,因此,也就有了另一种创建线程的方法;
  3. 构造方法中的String类型的参数是作为线程的名字,每个线程都有一个名字,如果没有指定的话,运行时环境回为它指定一个默认的名字Thread-X,X表示生成的序号,从0开始,其他构造方法见下表;
    表1 其他构造方法
    构造方法说明
    Thread创建一个线程实例
    Thread(Runnable target)target是线程run执行的目标体
    Thread(Runable target,String name)指定了线程实例的名称
    Thread(String name)创建指定名称的线程实例
    Thread(ThreadGroup group,Runnable target)线程实例作为线程组group的一员
    Thread(ThreadGroup group,Runnable target,String name)创建指定指定名称的线程实例,并作为group引用的线程组的一员

  4. 每个线程类都需要覆盖从父类Thread继承的run方法,当线程工作时,会去执行该方法中的语句。

1.2 实现Runnable接口创建进程

由于在应用程序中,往往有自己的继承体系,因此,让类似cleck的类必须继承Thread就有一定的困难,因为Cleck可能必须继承一个业务体系中的某个类,如Employee类,这样,基于Java单继承的限制,就无法使得cleck成为一个线程类,因此Java提供了另一种方法来创建线程类。这种方法是一个类声明实现Runnable的接口,使自己成为一个线程的目标对象,具体的代码如下:

public class Clerk implements Runnable{
    public void run(){
        //添加具体的工作代码
    }
  1. 接口Runnable中只定义了一个run方法,定义了当目标线程执行时必须执行的代码;
  2. Thread类同样实现了Runnable接口;
  3. 如果在run方法运行时,需要获得当前执行线程的信息,可以使用Thread的类方法currentThread获得。

有了这个实现Runnable借口的目标体,就可以利用Thread的构造方法创建该目标体的线程实例,实例代码如下:

    Thread Clerk=new Thread(new Thread());

1.3 线程状态与线程控制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值