1.getName(); 傳回該線程的名稱。
2.currentThread();傳回對目前正在執行的線程對象的引用。
3.isAlive();測試線程是否處于活動狀态。
4.sleep();線程休眠。
5.setPriority(int newPriority);更改線程的優先級。
6.yield();暫停目前正在執行的線程對象,并執行其他線程。
執行個體如下:
測試getName(); 傳回該線程的名稱。
currentThread();傳回對目前正在執行的線程對象的引用。
public class Demo1 implements Runnable{
public void run() {
for(int i=0;i<10;i++){
// 擷取目前線程
Thread t=Thread.currentThread();
System.out.println(t.getName()+":"+i); // 傳回線程的名稱
}
}
//測試傳回線程的名稱
public static void main(String[] args) {
Demo1 demo1=new Demo1();
new Thread(demo1).start();
new Thread(demo1).start();
new Thread(demo1,"線程3").start();
}
}
測試isAlive();測試線程是否處于活動狀态。
public class Demo2 implements Runnable{
public void run() {
for(int i=0;i<10;i++){
// 擷取目前線程
Thread t=Thread.currentThread();
System.out.println(t.getName()+":"+i); // 傳回線程的名稱
}
}
public static void main(String[] args) {
Demo2 demo2=new Demo2();
Thread t1=new Thread(demo2);
System.out.println("t1是否活動:"+t1.isAlive());
t1.start();
System.out.println("t1是否活動:"+t1.isAlive());
}
}
測試 setPriority(int newPriority);更改線程的優先級。
public class Demo4 implements Runnable{
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
try {
Thread.sleep(1000);
// 擷取目前線程
Thread t=Thread.currentThread();
System.out.println(t.getName()+":"+i); // 傳回線程的名稱
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Demo4 demo4=new Demo4();
Thread t1=new Thread(demo4,"線程A");
Thread t2=new Thread(demo4,"線程B");
Thread t3=new Thread(demo4,"線程C");
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MIN_PRIORITY);
t3.setPriority(Thread.NORM_PRIORITY);
t3.start();
t1.start();
t2.start();
}
}
測試 yield();暫停目前正在執行的線程對象,并執行其他線程。
public class Demo5 implements Runnable{
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
try {
Thread.sleep(100);
// 擷取目前線程
Thread t=Thread.currentThread();
System.out.println(t.getName()+":"+i); // 傳回線程的名稱
if(i==5){
System.out.println("線程禮讓:");
Thread.currentThread().yield();
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Demo5 demo1=new Demo5();
new Thread(demo1,"線程A").start();
new Thread(demo1,"線程B").start();
}
}