【名师课堂】Java高级开发

【名师课堂】Java高级开发

Java核心第三部
156课时 |
31736人已学 |
(17 评论)

加入学习
加入学习

Thread与Runnable的区别

public class Thread
extends Object
implements Runnable=》原来Thread类是Runnable接口的子类

Thread处理上使用的就是代理设计模式

Runnable实现的多线程的程序类可以更好的描述数据共享的概念

没有共享:

class MyThread extends Thread{
    
    private int ticket=10,i=10;
    
    public void run(){
        while(i-->0 && this.ticket>0){
        System.out.println("Sell tickets:"+this.ticket--);
        }
    }
    
}

public class Test {

    public static void main(String args[]) {
         new MyThread().start();
         new MyThread().start();
        new MyThread().start();
        

    }
}

共享:

class MyThread extends Thread{
    
    private int ticket=10,i=10;
    
    public void run(){
        while(i-->0 && this.ticket>0){
        System.out.println("Sell tickets:"+this.ticket--);
        }
    }
    
}

public class Test {

    public static void main(String args[]) {
         MyThread ma=new MyThread();
         new Thread(ma).start();
         new Thread(ma).start();
         new Thread(ma).start();

    }
}

但结构不好

使用Runnable:

class MyThread implements Runnable{
    
    private int ticket=10,i=10;
    
    public void run(){
        while(i-->0 && this.ticket>0){
        System.out.println("Sell tickets:"+this.ticket--);
        }
    }
    
}

public class Test {

    public static void main(String args[]) {
         MyThread ma=new MyThread();
         new Thread(ma).start();
         new Thread(ma).start();
         new Thread(ma).start();

    }
}

 

 

[展开全文]

Thread与Runnable:

要使用Runnable实现多线程更好,避免了单继承问题。

在多线程的处理上使用的就是代理设计模式。Runnable可以更好的实现共享。

[展开全文]

Thread与Runnable的区别

首先从形式上来讲明显使用Runable实现多线程会更好,但是Thread与Runnable之间也存在着一些联系,首先类观察一下Thread类的定义形式。

Thread类是Runable是的之类,Thread应该也有方法覆写

 

[展开全文]

授课教师

阿里云开发者社区全面升级
一站式体验,助力云上开发!
进入新社区

相关课程

查看更多 >

本课程相关云产品