package com.atguigu.java1;
/*
- 创建多线程的方式二:通过实现的方式
- 对比一下继承的方式和实现的方式:
- 1.联系:public class Thread implements Runnable
- 2.哪个方式好?实现的方式优于继承的方式
why? ①避免的java单继承的局限性
②如果多个线程要操作同一份资源(或数据),更适合使用实现的方式
*/
//1.创建一个实现Runnable接口类
class PrintNum1 implements Runnable{
//2.实现接口的抽象方法
public void run(){
for(int i = 1; i<= 100; i++){
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName() +
Thread.currentThread().getPriority() +":" + i);
}
}
}
}
public class TestThread4 {
public static void main(String[] args) {
//3.创建一个Runnable接口实现类的对象
PrintNum1 p1 = new PrintNum1();
//p1.start();start是thread类的接口,报错
//p1.run();这是调用run方法了,并不是多线程
//要想启动一个多线程,必须调用start()
//4.将此对象做为形参传递给Thread类的构造器中,创建thread类的对象,此对象即为一个线程
Thread t1 = new Thread(p1);
//5.调用start()方法
t1.start();//启动线程,执行thread对象生成时,构造器形参的对象的run()方法
Thread t2 = new Thread(p1);
t2.start();
}
}