介绍
多线程是java中的一个重要的知识点,且在业务中经常使用,还是有必要掌握一下它。本文简要介绍一下线程的4种启动方式, 继承Thread,实现Runnable接口,实现Callable接口,通过线程池来启动线程。以上4种形式的线程启动方式,最终都是通过Thread.start()方法来真正启动线程。
继承Thread
通过继承java线程类Thread,并覆写run方法来实现线程。如下:
package com.stx.demo;
/**
* 线程使用方式1
* 直接继承Thread,并覆写run方法
*/
public class ThreadUse1 extends Thread{
public ThreadUse1(String name) {
super(name);
}
public static void main(String[] args) {
System.out.println("---------------->");
ThreadUse1 thread = new ThreadUse1("线程使用方式1");
//启动线程
thread.start();
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " 正在执行...");
}
}
执行结果
---------------->
线程使用方式1 正在执行...
实现Runnable接口
通过实现Runnable接口,并将Runnable引用传递给Thread,Thread在执行时,run方法会调用Runnable.run方法。Thread的run方法如下:
@Override
public void run() {
if (target != null) {
target.run();
}
}
这个target是我们传递进去的runnable
通过Runnable可以将线程业务逻辑和线程的执行代码分开,代码上条理比较清楚
packag