1.線程也有固定的操作狀態
創建狀態:準備好了一個多線程的對象就緒狀態:調用了start()方法,等待CPU進行調度運行狀態:執行run()方法阻塞狀態:暫時停止執行,可能將資源交給其他線程使用終止狀態:(死亡狀態)線程銷毀 (阻塞可以恢復為運行狀態)1.取得線程名稱 getName()
2.取得當前線程對象 currentThread()
3.判斷線程是否啟動 isAlive()
4.線程的強行運行 join()
5.線程的休眠 sleep()
6.線程的禮讓 yield()
//先獲得線程對象才能獲得線程名稱public class RunDemo implements Runnable{ PRivate String name; public RunDemo(String name){ this.name=name; } public void run(){ for(int i=0;i<50;i++){ System.out.println("當前線程對象:"+Thread.currentThread().getName()); } }}public class DemoTest{ public static void main(String[] args){ RunDemo r1=new RunDemo("A"); RunDemo r2=new RunDemo("B"); Thread t1=new Thread(r1); Thread t2=new Thread(r2); r1.start(); r2.start(); }}//當前線程是否在啟動public class RunDemo implements Runnable{ private String name; public RunDemo(String name){ this.name=name; } public void run(){ for(int i=0;i<50;i++){ System.out.println(name+":"+i); } }}public class DemoTest{ public static void main(String[] args){ RunDemo r1=new RunDemo("A"); Thread t1=new Thread(r1); System.out.println(t1.isAlive()); t1.start(); System.out.println(t1.isAlive()); }}//線程強行運行public class RunDemo implements Runnable{ private String name; public RunDemo(String name){ this.name=name; } public void run(){ for(int i=0;i<50;i++){ System.out.println(name+":"+i); } }}public class DemoTest{ public static void main(String[] args){ RunDemo r=new RunDemo("A"); Thread t=new Thread(r); t.start(); for(int i=0;i<50;i++){ if(i>10){ try{ t.join(); }catch(InterruptedException e){ e.printStackTrace(); } } System.out.println("主線程:"+i); } }}//線程的沉睡public class RunDemo implements Runnable{ private String name; public RunDemo(String name){ this.name=name; } public void run(){ for(int i=0;i<50;i++){ try{ Thread.sleep(1000); System.out.println(name+":"+i); }catch(InterruptedException e){ e.printStackTrace(); } } }}//線程的禮讓public class RunDemo implements Runnable{ private String name; public RunDemo(String name){ this.name=name; } public void run(){ for(int i=0;i<50;i++){ System.out.println(name+":"+i); if(i == 10){ System.out.println("禮讓"); Thread.yield(); } } }}public class DemoTest{ public static void main(String[] args){ RunDemo r1=new RunDemo("A"); RunDemo r2=new RunDemo("B"); Thread t1=new Thread(r1); Thread t2=new Thread(r2); t1.start(); t2.start(); }}新聞熱點
疑難解答