java实现多线程可以有以下三种方式:
(1)继承Thread 类,重写其run()方法;
(2)实现Runnable接口,实现其run() 方法;
(3) 实现Callable 接口,重写call() 方法;
下面以实际的例子做一下展示
1 import java.util.concurrent.Callable; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 import java.util.concurrent.Future; 5 6 class MyThread extends Thread{ 7 //采用集成的方式实现线程 8 public void run(){ 9 for(int i=0; i<=5;i++){10 try {11 Thread.sleep(1000);12 } catch (InterruptedException e) {13 // TODO Auto-generated catch block14 e.printStackTrace();15 }16 System.out.println("MyThread 集成方式实现 the i ="+i);17 18 }19 }20 21 }22 23 class MyImpThread implements Runnable{24 25 @Override26 public void run() {27 for(int i=0; i<=5;i++){28 try {29 Thread.sleep(1000);30 } catch (InterruptedException e) {31 // TODO Auto-generated catch block32 e.printStackTrace();33 }34 System.out.println("MyImpThread 实现接口的方式实现 the i ="+i);35 36 }37 38 }39 40 }41 42 class CallableTest implements Callable
运行结果:
MyImpThread 实现接口的方式实现 the i =0
MyThread 集成方式实现 the i =0Callable类型 实现接口的方式实现 the i =0MyImpThread 实现接口的方式实现 the i =1MyThread 集成方式实现 the i =1Callable类型 实现接口的方式实现 the i =1当前主线程 the i =0当前主线程 the i =1当前主线程 the i =2当前主线程 the i =3当前主线程 the i =4当前主线程 the i =5MyImpThread 实现接口的方式实现 the i =2MyThread 集成方式实现 the i =2Callable类型 实现接口的方式实现 the i =2MyImpThread 实现接口的方式实现 the i =3MyThread 集成方式实现 the i =3Callable类型 实现接口的方式实现 the i =3MyImpThread 实现接口的方式实现 the i =4MyThread 集成方式实现 the i =4Callable类型 实现接口的方式实现 the i =4MyImpThread 实现接口的方式实现 the i =5MyThread 集成方式实现 the i =5Callable类型 实现接口的方式实现 the i =5可以看出,三种方式实现的java线程都可以很好运行,加上主线程,一共四个线程在同时运行,各个线程之间来回切换。