Java线程的实现有两种方式:

1 通过继承Thread类来实现。

每个线程都是通过某个特定Thread对象所对应的方法run()l来完成其操作的,方法run()成为线程体。

如果想要启动多线程,则肯定调用start()方法,start方法可以调用被子类覆写过的run方法

不过这种这种实现方式会受到单继承的局限

 

示例代码:

package com.dr.demo01;

//一个类只要继承了Thread类,则此类就是多线程类

class MyThread extends Thread{

       private String name;

       public MyThread(String name){

              this.name=name;

       }

       //如果要使用多线程,则必须有一个方法的主体

       public void run(){

              //打印输出

              for(int i=0;i<15;i++){

                     System.out.println(this.name+"--->在运行、、、");

              }

       }

}

public class ThreadDemo01{

       public static void main(String args[]){

              MyThread mt1=new MyThread("线程A");

              MyThread mt2=new MyThread("线程B");

              MyThread mt3=new MyThread("线程C");

              mt1.run();

              mt2.run();

              mt3.run();

       }

}

 

2 通过实现Runnable接口来实现。

该实现方式有以下好处:

     适合多个相干同程序代码的线程去处理同一资源的情况。

     可以避免由于Java单继承特性带来的局限。

     有利于程序的健壮性,代码能够被多个线程共享。

 

示例代码:

package com.dr.Demo05;

class MyThread implements Runnable{

    public void run(){

       for(int i=0;i<100;i++){

           try{

              Thread.sleep(1000);

           }catch(Exception e){}

           System.out.println(Thread.currentThread().getName()+"--运行中--");

       }

    }

}

public class Demo05 {

 

   

    public static void main(String[] args) {

       MyThread mt=new MyThread();

       Thread t1=new Thread(mt,"线程A");

       Thread t2=new Thread(mt,"线程B");

       Thread t3=new Thread(mt,"线程C");

       t1.start();

       t2.start();

       t3.start();

    }

 

}