线程的常用方法

!!! note 目录

线程的常用方法

一、Java Thread 构造函数

构造函数 描述
Thread() 初始化一个新平台 Thread
Thread(Runnable task) 初始化一个新平台 Thread
Thread(Runnable task, String name) 初始化一个新平台 Thread
Thread(String name) 初始化一个新平台 Thread
Thread(ThreadGroup group, Runnable task) 初始化一个新平台 Thread
Thread(ThreadGroup group, Runnable task, String name) 初始化一个新平台 Thread,使其具有 task 作为其运行对象、具有指定 name 的名称并且属于所引用的线程组 group
Thread(ThreadGroup group, Runnable task, String name, long stackSize) 初始化一个新平台 Thread,使其具有 task 作为其运行对象、具有指定 name 的名称、属于所引用的线程组 group 并且具有指定的堆栈大小。
Thread(ThreadGroup group, Runnable task, String name, long stackSize, boolean inheritInheritableThreadLocals) 初始化一个新平台 Thread,使其具有 task 作为其运行对象、以指定的 name 作为其名称、属于所引用的线程组 group、具有指定的 stackSize,并且如果 inheritInheritableThreadLocalstrue,则继承可继承线程局部变量的初始值。
Thread(ThreadGroup group, String name) 初始化一个新平台 Thread

二、Java 线程方法

修饰符和类型 方法 描述
public void start() 启动线程,调用线程的 run() 方法。
public void run() 线程运行时执行的代码,需在子类中重写或在 Runnable 的实现类中实现。
public static void sleep(long millis) 使当前线程休眠指定的毫秒数。
public final void join() 等待该线程终止。
public static void yield() 暂停当前正在执行的线程对象,并执行其他线程。
public void interrupt() 中断线程。
public boolean isAlive() 测试线程是否还活着。
public String getName() 获取线程的名称。
public void setName(String name) 设置线程的名称。
public int getPriority() 获取线程的优先级。
public void setPriority(int priority) 设置线程的优先级。

三、代码实例

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package com.camellia.thread.MethodForThreads_3;

import org.junit.jupiter.api.Test;

/**
* 本类展示了如何使用Java中的一些基本线程方法。
* 包括获取当前线程对象、创建线程、启动线程以及设置线程名称等。
*/
public class ThreadMethodsTest {

/**
* 测试线程的方法,演示了获取当前线程、创建和启动线程,以及设置线程名称。
*/
@Test
public void testThreadMethods() {
// 1. 获取当前线程对象
Thread mainThread = Thread.currentThread();
// 获取当前线程名称并打印
System.out.println("主线程名称:" + mainThread.getName());

// 2. 创建一个新的线程对象
Thread thread = new MyThread();
// 启动线程
thread.start();

// 3. 再创建一个新的线程对象
thread = new MyThread();
// 修改线程名称
thread.setName("Camellia@线程");
// 启动线程
thread.start();

// 4. 创建线程对象时直接设置名称
thread = new MyThread("XIAOHUA@线程");
// 启动线程
thread.start();
}
}

/**
* 自定义线程类,继承自java.lang.Thread。
* 该类展示了如何通过继承Thread类来创建线程,并如何获取和设置线程的名称。
*/
class MyThread extends Thread {

/**
* 默认构造方法
*/
public MyThread() {}

/**
* 带名称参数的构造方法
* @param name 线程的名称
*/
public MyThread(String name) {
super(name);
}

/**
* 重写run方法,这是线程的执行体,当线程启动时会执行此方法。
*/
@Override
public void run() {
// 获取当前线程对象
Thread thread = Thread.currentThread();
// 获取当前线程名称并打印
System.out.println("分支线程名称:" + thread.getName());
}
}

线程没有起名字的就默认是Thread-(0,1,2,3,4,5…),主线程除外。