黑马程序员——Java基础——多线程

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

我们知道,进程就是一个正在执行中的程序,而线程就是一个进程中的多个执行路径。线程通过抢CPU来运行。

线程的定义方式有两种:

第一种是通过继承Thread类。
1、创建一个类继承Thread类;
2、重写 run 方法;
3、调用 start 方法开启线程。


public class ThreadTest {
    public static void main(String[] args){
        a aa=new a();
        aa.start();
        b bb=new b("keey");
        bb.start();
    }
}

class a extends Thread{
    public void run(){
        for(int i=0;i<200;i++){
            System.out.println(Thread.currentThread().getName()+"  "+i);
        }
    }
    a(){
        super("mile");  //调用 Thread 类的构造方法为线程自定义名称
    }
}
class b extends Thread{
    public void run(){
        for(int i=0;i<200;i++){
            System.out.println(this.getName()+i+"----");
        }
    }
    b(String name){
        super(name);    
    }
}

第二种是通过实现Runnable接口。
1、创建一个类实现Runnable接口;
2、重写 run 方法;
3、通过 Thread 类建立线程对象;
4、将接口子类对象作为实际参数传给 Thread 类构造函数;
5、Thread 类的 start 方法开启,并调用接口 run方法。


public class ThreadTest2 {
    public static void main(String[] args){
        c cc=new c();
        new Thread(cc).start();
        d dd=new d();
        new Thread(dd).start();
    }
}

class c implements Runnable{
    public void run(){
        for(int i=0;i<100;i++){
            System.out.println(111111);
        }
    }
}
class d implements Runnable{
    public void run(){
        for(int i=0;i<100;i++){
            System.out.println("AAA");
        }
    }
}

两方法的区别:
实现方式的好处:避免了单继承的局限性。
定义线程时,一般建议使用实现方式。
继承Thread:线程代码存放 Thread 子类 run 方法中。
实现 Runnable:代码存放接口子类 run 方法中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值