在Java语言中,从JDK1.0开始就有多线程,在多线程的实现上面有多种形式,本例以实现Runnable接口。

在实现public interface Runnable接口后,需要覆写public void run()方法。其方法的主体也就是在启动线程之后所执行的方法体。在实现Runnable接口,并没有start()方法可以继承,如果要启动多线程一定要依靠Thread类来完成。

:使用实现Runnable接口来实现多线程,可以避免单继承局限。

使用Runnable实现多线程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MyThread2 implements Runnable{

private String threadName ;

public MyThread2( String threadName) {
this.threadName = threadName;
}

public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(this.threadName + " - " + i );
}
}
}

利用Thread类启动多线程

Thread中有两个构造方法,可以接受Runnable接口对象:

1
2
public Thread(Runnable target);
public Thread(Runnable target, String name);

启动多线程:

1
2
3
new Thread(new MyThread2("Thread one")).start();
new Thread(new MyThread2("Thread two")).start();
new Thread(new MyThread2("Thread three")).start();

测试实例

File : RunnableDemo.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.devnp;

/**
* Created by duliu on 26/8/2017.
*/
class MyThread2 implements Runnable{

private String threadName ;

public MyThread2( String threadName) {
this.threadName = threadName;
}

public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(this.threadName + " - " + i );
}
}
}

public class RunnableDemo {

public static void main(String[] args) {
new Thread(new MyThread2("Thread one")).start();
new Thread(new MyThread2("Thread two")).start();
new Thread(new MyThread2("Thread three")).start();

}
}

在运行结果,会发现线程之间是交替输出,也就是每个线程在执行的时候根据资源的分配交替执行。