Thread 类和Runnable接口区别 or data 共享

版权声明:本文为博主原创文章,转载注明出处。有需要请联系[email protected] https://blog.csdn.net/weixin_42749765/article/details/82887654

Thread 类实现例子

//继承线程类
public class MyThread extends Thread {
 
    private String name;
 
    //调用线程的外不构造类
    public MyThread(String name) {
        this.name = name;
    }
 
    @Override
    public void run() {//执行内部方法内容
        System.out.println("MyThread is " + name);
    }
}
//main启动线程
public class Test {
 
    public static void main(String[] args){
        MyThread myThread1=new MyThread("线程1");
        MyThread myThread2=new MyThread("线程2");
        MyThread myThread3=new MyThread("线程3");
 
        myThread1.start();
        myThread2.start();
        myThread3.start();
 
        System.out.println("myThread1 id ="+myThread1.getId());
        System.out.println("myThread1 id ="+myThread2.getId());
        System.out.println("myThread1 id ="+myThread3.getId());
 
    }
 
}

Runnable接口实现线程no 数据共享or 数据共享方式

//实现接口
public class MyRunnable implements Runnable {
 
    private String name;
 
    public MyRunnable(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println("MyRunnable is " + name);
    }
}
//启动线程
public class Test {
 
    public static void main(String[] args){
 
        MyRunnable myRunnable1=new MyRunnable("Runnable1");
        MyRunnable myRunnable2=new MyRunnable("Runnable2");
        MyRunnable myRunnable3=new MyRunnable("Runnable3");
         
        //需要通过thread启动
        Thread myThread1=new Thread(myRunnable1);
        myThread1.start();
        System.out.println("myThread1 id ="+myThread1.getId());

        Thread myThread2=new Thread(myRunnable2);
        myThread2.start();
        System.out.println("myThread1 id ="+myThread2.getId());

        Thread myThread3=new Thread(myRunnable3);
        myThread3.start();
        System.out.println("myThread1 id ="+myThread3.getId());
        




        //数据共享的方式 使用runnable接口数据共享
        MyRunnable myRunnable5=new MyRunnable("Runnable5");

        Thread myThread51=new Thread(myRunnable5);
        myThread51.start();
        System.out.println("myThread1 id ="+myThread51.getId());

        Thread myThread52=new Thread(myRunnable5);
        myThread52.start();
        System.out.println("myThread2 id ="+myThread52.getId());

        Thread myThread53=new Thread(myRunnable5);
        myThread53.start();
        System.out.println("myThread3 id ="+myThread53.getId());

    }
 
}

从上边的例子发现实现线程的方式 Thread 也是实现了Runnable 接口  ,Runnable接口其实还可以干很多其他的事情 我们使用线程的时候直接使用Thread就好了

猜你喜欢

转载自blog.csdn.net/weixin_42749765/article/details/82887654