首页 > 代码库 > 线程-初步

线程-初步

一、java中线程的两种方式:

  1.通过实现Runnable()接口;

  2.通过继承Thread类来实现;

下面我们分别来实现这两种方式:

     1.实现Runnable()接口

 1 public class thd  2 { 3     public static void main(String args[]) 4     { 5         runner1 r1= new runner1(); 6         Thread td1 = new Thread(r1);         td1.start();11         12         for(int i=0;i<10;i++)13         {14             System.out.println("Main() :"+i);15         }16     }17 }18 19 class runner1 implements Runnable20 {21     public void run()22     {23         for(int i=0;i<10;i++)24         {25             System.out.println("Runner1 :"+i);26         }27     }28 }29 30 

 这种方法使用较为普遍和广泛,因为从Thread类继承以后就不能从其他的类继承,而实现Runnable()接口的方式可以从其他类继承并且还可以实现其他接口.

 接口的实现run()方法是线程体,需要将该类的对象传到Thread类对象当中;

 

2.通过Thread类继承的方式:

 1 public class thd  2 { 3     public static void main(String args[]) 4     { 5         runner1 r1= new runner1(); 6         r1.start(); 7          8         for(int i=0;i<10;i++) 9         {10             System.out.println("Main() :"+i);11         }12     }13 }14 15 class runner1 extends Thread16 {17     public void run()18     {19         for(int i=0;i<10;i++)20         {21             System.out.println("Runner1 :"+i);22         }23     }24 }

 能用Runnable()接口的方式就不要用这种方式。

 

二.线程中的方法:

    1.join()将线程合并为一个线程,也就是和单线程调用函数结果一样

 1 import java.util.*; 2 public class thd  3 { 4     public static void main(String args[]) 5     { 6         runner1 r1= new runner1(); 7         r1.start(); 8         try 9         {10             r1.join();11         }12         catch(InterruptedException e)13         {14             e.printStackTrace();15         }16         for(int i=0;i<5;i++)17         {18             System.out.println("Main "+i);19         }20     }21 }22 23 class runner1 extends Thread24 {25     public void run()26     {27         for(int i=0;i<5;i++)28         {29             System.out.println("Runner1 "+i);30         }31     }32 }

执行结果如下:

    Runner1 0
  Runner1 1
  Runner1 2
  Runner1 3
  Runner1 4
  Main 0
  Main 1
  Main 2
  Main 3
  Main 4