创建多线程程序的第二种方式_实现Runnable接口,Thread和Runnable的区别

创建多线程程序的第二种方式_实现Runnable接口:

采用 java.lang.Runnable也是非常常见的一种,我们只需要重写run方法即可。

步骤如下:

1.定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。

2.创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。

3.调用线程对象的start()方法来启动线程。

代码如下∶

public class MyRunnable implements Runnable{
        @Override
         public void run( ) {
          for (int i - 0; i < 20; i++) {
        system.out.println(Thread. currentThread().getName()+”"+i);
        }
    }
}

 

 

 

 

Thread和Runnable的区别:

如果一个类继承Thread ,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。

总结:

实现Runnable接口比继承Thread类所具有的优势:

1.适合多个相同的程序代码的线程去共享同一个资源。

2.可以避免java中的单继承的局限性。
3.增加程序的健壮性,实现解耦操作,代码可以被多个线程共享,代码和线程独立。

4.线程池只能放入实现Runable或Callable类线程,不能直接放入继承Thread的类。

扩充:在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类

的时候,实际上都会启动一个VM,每一个VM其实在就是在操作系统中启动了一个进程。

 

posted @ 2022-07-07 21:40  冰灵IT  阅读(30)  评论(0)    收藏  举报