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

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

  Runnable接口应该由那些打通过某一线程执行其实列的类在实现,类必须定义一个称为run发无参方法

  Thread (Runnable target)分配新的对象 Thread对象

  Thread (Runnable target,String name)分配新的Thread对象

实现步骤:

  创建一个Runnable接口实现类

  在实现类中重写Runnable接口的中的Run方法,设置线程任务

  创建一个Runnable接口实现对象

  创建Thread类对象,构造方法中传递Runnbable接口的实现类对象

  调用Thread类中start方法,并开启新的线程run方法

案例:

package Runnable;

public class Runnableimpl implements Runnable{

@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+i);
}
}

public static void main(String[] args) {
Runnableimpl runnableimpl = new Runnableimpl();
Thread thread = new Thread(runnableimpl);
thread.start();
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+i);
}

}
}

看结果:

  

 

 

   

 

Thread和Runnable的区别

实现Runnleb实现多线程的好处: 

 1.避免了单继承的局限性

  一个类只能继承一个类,类继承了Thread类就不能继承其他的类

  实现Runnable接口,还可以继承其他的类,实现其他的接口

 2.增强了程序的扩展性,降低了程序的耦合性(解耦)

  实现Runnlab接口的方式,把设置线程任务和开启新线程进行了分离(解耦)

  实现类中,重写了run方法,用来设置线程任务

  创建Thread类对象,调用start方法;用来开启线程

案例:

  

public class Runnableimpl2 implements Runnable{

@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+i);
}
}

public static void main(String[] args) {
Runnableimpl2 runnableimpl = new Runnableimpl2();
Thread thread = new Thread(runnableimpl);
thread.start();
for (int i = 0; i < 20; i++) {
System.out.println("hello");
}

}
}

 

posted @ 2022-07-10 09:27  一位程序袁  阅读(34)  评论(0编辑  收藏  举报