java Thread学习-Thread的实现方法 继承Thread,实现Runnable 接口

一.Thread 类的直接使用

//在 new对象的时候 重写覆盖run函数

1.Thread  t = new Thread (){public run(){System.out .print ("hello world "); }};

2.Thread  t = new Thread (“TT”){public run(){System.out .print ("My name is TT "); }};

//利用Runnable

1.Runnable r =new Runnable(){public run(){System.out .print ("hello world "); }};

Thread t1 = new Thread(r);

Thread  t2 = new Thread(r,"name");

2.Thread  t1 =new Thread (new Runnable (){public void run(){System.out .print ("hello world ");}});

Thread  t2 =new Thread (new Runnable (){public void run(){System.out .print (" my name is TT ");}},“TT”);


二。自定义类的实现方法

1.继承Thread类

public class ThreadTest extends Thread {

// 必须实现 run()函数。且 run函数的必须以这样的语法格式,才能是重写覆盖。

  public void run(){}

}

当new 出一个线程的时候, 通过start() 函数启动它, new ThreadTest()。start();可能有illegalThreadStateException


2.将类实现Runnable 接口

因为java不支持多继承,所以另一种实现Thread的方法是继承接口。实际上,Thread 类就是实现了Runnable接口的run() 函数的。

public class ThreadRun extends object implements Runnable {

//实现run函数

String name;

public void run(){}

}

这时候,创建方法有两种,把ThreadRun 按照文章开头的例子,当做Runnable来用就行,

即 Thread t = new Thread (new ThreadRun());

Thread t = new Thread (new ThreadRun(),“ThreadName”);//直接把“ThreadName”赋值给 ThreadRun()的name


三.例子


package ThreadTest;

public class Threada extends Thread {

    String name ;
    public Threada(String name){
        this.name = name ;
    }
    public void run (){
        for (int i =0 ;i<10 ;i++){
            System.out.println(name+":"+i);
        }
    }
    public static void main (String args[]){
     Threada t1= new Threada("111");
     Threada t2= new Threada("222");
     Threada t3= new Threada("333");
     t1.start();
     t2.start();
     t3.start();
    }
}

结果:

111:0
333:0
222:0
333:1
111:1
111:2
333:2
222:1
333:3
111:3
333:4
333:5
333:6
333:7
222:2
333:8
111:4
333:9
222:3
222:4
111:5
222:5
111:6
222:6
111:7
222:7
111:8
222:8
111:9
222:9




public class Threadb implements Runnable{

    String name ;
    @Override
    public void run() {
        // TODO Auto-generated method stub
        for (int i =0 ;i<10 ;i++){
            System.out.println(Thread.currentThread().getName()+":"+i);
        }
    }
    
    public static void main (String args[]){
        Thread t1 = new Thread(new Threadb(),"11");
        Thread t2 = new Thread(new Threadb(),"22");
        Thread t3 = new Thread(new Threadb(),"33");
        t1.start();
        t2.start();
        t3.start();
    }
}



结果:

22:0
33:0
11:0
33:1
22:1
33:2
11:1
33:3
22:2
33:4
11:2
33:5
22:3
33:6
33:7
33:8
11:3
33:9
22:4
22:5
11:4
22:6
11:5
22:7
11:6
22:8
22:9
11:7
11:8
11:9




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值