【Java多线程】Thread的几个方法
1. start()方法导致此线程开始执行;Java虚拟机调用此线程的run()方法。结果是两个线程同时运行:当前线程(从调用返回到start方法)和另一个线程(执行其run方法)。不止一次启动线程是不合法的。特别地,一旦线程完成执行就可能不会重新启动。异常:IllegalThreadStateException - 如果线程已经启动。// 源代码,定义public synchronized vo
目录
1. start()方法
导致此线程开始执行;Java虚拟机调用此线程的run()方法。
结果是两个线程同时运行:当前线程(从调用返回到start
方法)和另一个线程(执行其run
方法)。
不止一次启动线程是不合法的。 特别地,一旦线程完成执行就可能不会重新启动。
异常:IllegalThreadStateException - 如果线程已经启动。
// 源代码,定义
public synchronized void start() {
/**
* This method is not invoked for the main method thread or "system"
* group threads created/set up by the VM. Any new functionality added
* to this method in the future may have to also be added to the VM.
*
* A zero status value corresponds to state "NEW".
*/
if (threadStatus != 0)
throw new IllegalThreadStateException();
/* Notify the group that this thread is about to be started
* so that it can be added to the group's list of threads
* and the group's unstarted count can be decremented. */
group.add(this);
boolean started = false;
try {
start0();
started = true;
} finally {
try {
if (!started) {
group.threadStartFailed(this);
}
} catch (Throwable ignore) {
/* do nothing. If start0 threw a Throwable then
it will be passed up the call stack */
}
}
}
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;
}
更多推荐
所有评论(0)