线程2:创建多线程的第二种方式--java37(03/20/2016)

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();
    }
}

你可能感兴趣的:(线程2:创建多线程的第二种方式--java37(03/20/2016))