简介
Thread Java线程类,用于线程相关操作,是并发和多线程的基础。本文将对Thread源码和日常使用的函数进行解读。在对线程的使用有基本的了解后,再来阅读它的源码,有助于加深对线程的理解;如有小伙伴对线程的使用不是很清楚的话,请参考《Java开启线程的4种方式》。
线程是操作系统中的概念,也是系统调度的基本单元。对于线程的创建,通常通过系统的API来进行创建,Thread的线程创建也是通过系统API来进行创建,Thread只是对系统线程的一个包装。
构造函数
初始化线程
private void init(ThreadGroup g, Runnable target, String name,
long stackSize) {
init(g, target, name, stackSize, null, true);
}
参数说明
参数 | 说明 |
---|---|
ThreadGroup g | 线程组 |
Runnable target | 线程启动后,线程中回调run的目标对象 |
String name | 线程名 |
long stackSize | 线程栈大小 |
调用6参得初始化线程函数
private void init(ThreadGroup g, Runnable target, String name,
long stackSize, AccessControlContext acc,
boolean inheritThreadLocals)
参数说明
参数 | 说明 |
---|---|
ThreadGroup g | 线程组 |
Runnable target | 线程回调run方法 |
String name | 线程名字 |
long stackSize | 线程堆栈大小 |
AccessControlContext acc | 上下文 |
boolean inheritThreadLocals | 是否继承ThreadLocals的值 |
无参构造函数
public Thread() {
init(null, null, "Thread-" + nextThreadNum(), 0);
}
带一个参数构造函数
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
参数 | 说明 |
---|---|
Runnable target | 线程回调后的目标对象 |
public Thread(String name) {
init(null, null, name, 0);
}
参数 | 说明 |
---|---|
String name | 线程名 |
带两个参数的构造函数
Thread(Runnable target, AccessControlContext acc) {
init(null, target, "Thread-" + nextThreadNum(), 0, acc, false);
}
参数 | 说明 |
---|---|
Runnable target | 线程回调后的目标对象 |
AccessControlContext acc | 系统资源访问决策类 |
public Thread(ThreadGroup group, Runnable target) {
init(group, target, "Thread-" + nextThreadNum(), 0);
}
参数 | 说明 |
---|---|
ThreadGroup group | 线程组 |
Runnable target | 线程回调后的目标对象 |
public Thread(ThreadGroup group, String name) {
init(group, null, name, 0);
}
参数 | 说明 |
---|---|
ThreadGroup group | 线程组 |
String name | 线程名 |
带三个参数的构造函数
public Thread(ThreadGroup gro