目录
1. start()方法
2. run()方法
3. currentThread()方法
4. isActive()方法
5. sleep()方法
6. getId()方法
1. start()方法
导致此线程开始执行;Java虚拟机调用此线程的run()方法。
结果是两个线程同时运行:当前线程(从调用返回到start方法)和另一个线程(执行其run方法)。
不止一次启动线程是不合法的。 特别地,一旦线程完成执行就可能不会重新启动。
异常:IllegalThreadStateException - 如果线程已经启动。
// 源代码,定义
public synchronized void start() {
if (threadStatus != 0)
throw new IllegalThreadStateException();
group.add(this);
boolean started = false;
try {
start0();
started = true;
} finally {
try {
if (!started) {
group.threadStartFailed(this);
}
} catch (Throwable ignore) {
}
}
}
2. run()方法
如果这个线程是使用单独的Runnable运行对象构造的,则Runnable对象的run方法;否则,此方法不执行任何操作并返回。
Thread的Thread应该覆盖此方法。
// 源代码,Java
public void run() {
if (target != null) {
target.run();
}
}
3. currentThread()方法
该方法可返回代码段正在被哪个线程调用的信息。
// 方法的源代码定义 public static native Thread currentThread();
4. isActive()方法
测试线程是否处于活动状态。
【注】:活动状态,即线程已经启动且尚未终止。
// 源代码,定义 public final native boolean isAlive();
在使用isAlive(方法时,如果将线程对象以构造参数的方式传递给Thread对象进行start()启动时,运行的结果和前面示例是有差异的。造成这样的差异的原因还是来自于Thread.currentThread()和this的差异。
5. sleep()方法
在指定的毫秒数内让当前”正在执行的线程“休眠(暂停执行)。这个”正在执行的线程“是指this.currentThread()返回的线程。
// 源代码,定义 public static native void sleep(long millis) throws InterruptedException;
异常:
IllegalArgumentException - 如果 millis值为负数。
InterruptedException - 如果任何线程中断当前线程。 当抛出此异常时,当前线程的中断状态将被清除。
6. getId()方法
取得线程的唯一标识。
// 源代码,定义
public long getId() {
return tid;
}


