线程中常用的方法(续)
判断线程是否启动:isAlive()
实例:
package com.qwy5;
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i <= 5; i++) {
System.out.println(Thread.currentThread().getName() + "--" + i);
}
}
}
public class TestThreadIsAlive {
public static void main(String[] args) {
MyThread t1 = new MyThread();
System.out.println("线程开始执行之前:"+t1.isAlive());
t1.start();
System.out.println("线程开始执行之后:"+t1.isAlive());
for (int i = 0; i <= 5; i++) {
System.out.println(Thread.currentThread().getName() + "--" + i);
}
System.out.println("线程执行之后:"+t1.isAlive());//后面输出的结果不确定
}
}
可能执行结果:
线程开始执行之前:false
线程开始执行之后:true
main–0
main–1
main–2
main–3
Thread-0–0
main–4
main–5
Thread-0–1
Thread-0–2
线程执行之后:true
Thread-0–3
Thread-0–4
Thread-0–5
另外的可能的一种结果:
线程开始执行之前:false
线程开始执行之后:true
main–0
main–1
main–2
Thread-0–0
Thread-0–1
Thread-0–2
Thread-0–3
Thread-0–4
Thread-0–5
main–3
main–4
main–5
线程执行之后:false
以上输出结果是不确定的,有可能到最后时,线程已经不存在了,也有可能继续存在,这要看那个线程先执行完了。
线程的休眠:sleep(long millitime)
让当前线程“睡眠”指定的millitime毫秒。在指定的millitime毫秒时间内,当前线程是阻塞状态。
实例:
package com.qwy6;
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i <=10; i++) {
try {
//线程休眠1秒
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "--" + i);
}
}
}
public class TestThreadSleep {
public static void main(String[] args) {
MyThread t1 = new MyThread();
t1.start();
}
}
运行结果:
Thread-0–0
Thread-0–1
Thread-0–2
Thread-0–3
Thread-0–4
Thread-0–5
Thread-0–6
Thread-0–7
Thread-0–8
Thread-0–9
Thread-0–10
程序运行时,每次输出都会间隔1000ms,达到了延迟操作的速度。
未完待续
=============================================================================================
如有不妥之处,欢迎大家给予批评指出,如果对您有帮助,给留下个小赞赞哦
==============================================================================================