首頁  >  文章  >  Java  >  JAVA--線程與多線程 圖文詳解

JAVA--線程與多線程 圖文詳解

php是最好的语言
php是最好的语言原創
2018-08-08 10:28:411250瀏覽

【執行緒】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打印线程,“运行了”}
}

JAVA--線程與多線程 圖文詳解

#練習二、執行緒的生命週期: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();
    }
    }
}
}

JAVA--線程與多線程 圖文詳解

練習三、多執行緒

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--線程與多線程 圖文詳解

相關推薦:

## Java -- 多執行緒

java執行緒詳解及執行緒與進程的差異

以上是JAVA--線程與多線程 圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn