【執行緒】Java程式中的單一任務流程。我們把每個任務放在相對獨立的執行緒中去實現。 main是主執行緒
【並發】同時完成多個任務。程式執行的步驟都是有順序的,但很多時候我們需要並發處理一個問題,而不是按順序處理一個問題
【多執行緒】執行緒也看成對象,多執行緒指多個執行緒對象
【API中支援線程的類別】java.lang.Thread。 Thread類別的物件就是執行緒物件
練習一、初始化執行緒對象,印出執行緒
package pkg3;public class test3 implements Runnable{ Thread th1; public test3() {//2 th1=new Thread(this);//2-1初始化了线程对象 th1.start();//2-2启动了线程对象,自动调用run方法 } public static void main(String[] args){ new test3();//1.从主线程开始,调用构造方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub System.out.println("线程运行了");//3-1打印线程,“运行了”} }
#練習二、執行緒的生命週期:new、runnable、not runnable、 dead
package pkg3;public class test3 implements Runnable{ Thread th1; public test3() {//2 th1=new Thread(this);//2-1初始化了线程对象 th1.start();//2-2启动了线程对象,自动调用run方法 } public static void main(String[] args){ new test3();//1.从主线程开始,调用构造方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub while(true) { System.out.println("线程运行了");//3-1打印线程,“运行了” try { th1.sleep(500);//强制睡眠500毫秒,进入非运行状态not runnable(睡眠、堵塞、排队) } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
練習三、多執行緒
package pkg3;public class test3 implements Runnable{ Thread th1,th2; public test3() {//2 th1=new Thread(this);//2-1初始化了线程对象 th2=new Thread(this); th1.start();//2-2启动了线程对象,自动调用run方法 th2.start(); } public static void main(String[] args){ new test3();//1.从主线程开始,调用构造方法 }@Overridepublic void run() {//3 // TODO Auto-generated method stub /*while(true) { System.out.println("线程运行了");//3-1打印线程,“运行了” try { th1.sleep(500);//强制睡眠500毫秒,进入非运行状态not runnable(睡眠、堵塞、排队) } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }*/ Thread th=Thread.currentThread();//这个方法可以判断进入run方法的线程对象 if(th==th1) { System.out.println("线程1运行了"); } if(th==th2) { System.out.println("线程2运行了"); } } }
相關推薦:
以上是JAVA--線程與多線程 圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!