[Java多线程] 创建、使用自定义线程的两种常用方法
总结一下Java中自定义线程的创建与使用的两种常用方法。
这里通过实现一个最简洁的自定义多线程类:Morty类,以及仅包含main函数的测试类:ThreadTest类来展示效果。
方法一:继承Thread类
最为简单直接的方法是继承Thread类。只需要实现Thread类所要求的run函数就够了。
优点:清晰,方式直接。
缺点:Java中仅能继承一个类,使用场景有限。
class Morty extends Thread {
// 定义成员和构造器..
// 定义run函数
public void run() {
System.out.println("我是一个Thread类,平行空间里无数Morty中的一个");
}
// 定义各种方法..
}
public class ThreadTest {
public static void main(String[] args) {
Morty morty0 = new Morty(); // 初始化线程(本例中使用默认构造器)
morty0.start(); // 启动线程
}
}
运行结果:
方法二:实现Runnable接口
优点:一个类能实现多个接口,适用范围广。
缺点:没有直接继承Thread类那样简单直接(但感觉用起来差不多)。
class Morty implements Runnable {
// 定义成员和构造器..
// 定义run函数
public void run() {
System.out.println("我是一个Thread类,平行空间里无数Morty中的一个");
}
// 定义各种方法..
}
public class ThreadTest {
public static void main(String[] args) {
Morty mortyTemp = new Morty(); // 初始化线程(本例中使用默认构造器)
Thread morty137 = new Thread(mortyTemp); // 初始化线程
// Thread morty137 = new Thread(new Morty()); // 也可以这样简写
morty137.start(); // 启动线程
}
}
运行结果:
(完。 推荐阅读:Java中的多线程)