在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;
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();
} }
|
在运行结果,会发现线程之间是交替输出,也就是每个线程在执行的时候根据资源的分配交替执行。
Author:
Darren Du
License:
Copyright (c) 2019 MIT LICENSE