<del id="lllnj"></del>

      <track id="lllnj"><strike id="lllnj"><ol id="lllnj"></ol></strike></track>

      <pre id="lllnj"></pre><track id="lllnj"><strike id="lllnj"><ol id="lllnj"></ol></strike></track>
      <pre id="lllnj"><ruby id="lllnj"></ruby></pre>

      <track id="lllnj"></track>

      <track id="lllnj"></track>

        <pre id="lllnj"><ruby id="lllnj"></ruby></pre>

        您當前所在位置:首頁 > PPT課件 > 工作PPT > 培訓教程PPT → jave培訓多線程PPT課件

        jave培訓多線程PPT課件

        PPT預覽

        jave培訓多線程PPT課件

        PPT內容

        這是jave培訓多線程PPT課件,主要介紹了多線程基本概念;創建線程的方式;線程的生命周期及控制;線程的優先級及調度;多線程的互斥與同步;守護線程;線程組,歡迎點擊下載。

          第2頁

          并發現象在現實生活中大量存在人體(消化、運動)計算機(同時運行多中程序)多線程——在一個程序中實現并發編程語言一般提供了串行程序設計的方法計算機的并發能力由操作系統提供Java在語言級提供多線程并發的概念

          1、多線程基本概念

          第3頁

          1、多線程基本概念

          以前所編寫的程序,每個程序都有一個入口、一個出口以及一個順序執行的序列,在程序執行過程中的任何指定時刻,都只有一個單獨的執行點。事實上,在單個程序內部是可以在同一時刻進行多種運算的,這就是所謂的多線程(這與多任務的概念有相似之處)。一個單獨的線程和順序程序相似,也有一個入口、一個出口以及一個順序執行的序列,從概念上說,一個線程是一個程序內部的一個順序控制流。線程并不是程序,它自己本身并不能運行,必須在程序中運行。在一個程序中可以實現多個線程,這些線程同時運行,完成不同的功能。

          將軍令

          多線程

          第4頁

          1、多線程基本概念

          第6頁

          進程:程序的一次執行。程序代碼程序數據程序資源線程:進程中程序代碼的一個執行序列。程序調用堆棧線程局部變量可共享訪問進程中的數據和資源操作系統按線程來調度程序的執行

          1、多線程基本概念

          第7頁

          1、多線程基本概念

          第8頁

          1、多線程基本概念

          多線程的優勢:多線程編程簡單,效率高(能直接共享數據和資源,多進程不能)適合于開發服務程序(如Web服務,聊天服務等)適合于開發有多種交互接口的程序(如聊天程序的客戶端,網絡下載工具)適合于有人機交互又有計算量的程序(如字處理程序Word,Excel)減輕編寫交互頻繁、涉及面多的程序的困難(如監聽網絡端口)程序的吞吐量會得到改善(同時監聽多種設備,如網絡端口、串口、并口以及其他外設)有多個處理器的系統,可以并發運行不同的線程(否則,任何時刻只有一個線程在運行)

          第9頁

          1、多線程基本概念

          雖然各種操作系統(Unix/Linux、Windows系列等)都支持多線程,但若要用C、C++或其他語言編寫多線程程序是十分困難的,因為它們對數據同步的支持不充分。對多線程的綜合支持是Java語言的一個重要特色,它提供了Thread類來實現多線程。在Java中,線程可以認為是由三部分組成的:虛擬CPU,封裝在java.lang.Thread類中,它控制著整個線程的運行;執行的代碼,傳遞給Thread類,由Thread類控制順序執行;處理的數據,傳遞給Thread類,是在代碼執行過程中所要處理的數據。

          第10頁

          2、創建線程的方式

          Java的線程是通過Java的軟件包java.lang中定義的類Thread來實現的。當生成一個Thread類的對象之后,就產生了一個線程,通過該對象實例,可以啟動線程、終止線程、或者暫時掛起線程等。

          第11頁

          2、創建線程的方式

          Thread類本身只是線程的虛擬CPU;線程所執行的代碼(或者說線程所要完成的功能)是通過方法run()(包含在一個特定的對象中)來完成的,方法run()稱為線程體。實現線程體的特定對象是在初始化線程時傳遞給線程的。在一個線程被建立并初始化以后,Java的運行時系統就自動調用run()方法,正是通過run()方法才使得建立線程的目的得以實現。通常,run()方法是一個循環,例如一個播放動畫的線程要循環顯示一系列圖片。有時,run()方法會執行一個時間較長的操作,例如下載并播放一個JPEG格式的電影。

          第12頁

          先來看看線程對象的初始化,類Thread的構造方法如下:publicThread(ThreadGroupgroup,Runnabletarget,Stringname)group指明了線程所屬的線程組;target是線程體run()方法所在的對象;name是線程的名稱。target必須實現接口Runnable。在接口Runnable中只定義了一個方法voidrun()作為線程體。任何實現接口Runnable的對象都可以作為一個線程的目標對象。類Thread本身也實現了接口Runnable(空實現),因此,上述構造方法中各參數都可以為null。

          2、創建線程的方式

          第13頁

          從Thread類的構造方法可以看出,用戶可以有兩種方法構造自己的run()方法。方法一:定義一個線程類,它繼承類Thread并重寫其中的方法run()。這時在初始化這個類的實例時,目標對象target可以為null,表示這個實例本身具有線程體。由于Java只支持單繼承,用這種方法定義的類不能再繼承其他類。

          2、創建線程的方式

          第14頁

          classSimpleThreadextendsThread{publicSimpleThread(Stringstr){super(str);}publicvoidrun(){for(inti=0;i<10;i++){System.out.println(i+""+getName());try{sleep((int)(Math.random()*1000));}catch(InterruptedExceptione){}}System.out.println("DONE!"+getName());}}

          TwoThreadsTest.java

          2、創建線程的方式

          第15頁

          方法二:提供一個實現接口Runnable的類作為線程的目標對象。在初始化一個Thread類或子類生成線程實例時,把目標對象傳遞給這個線程實例,由該目標對象提供線程體run()方法。這時,實現接口Runnable的類還可以再繼承其他類,即實現接口Runnable的類可以不單純是提供線程體。

          2、創建線程的方式

          第16頁

          publicclassClockextendsjava.applet.AppletimplementsRunnable{ThreadclockThread;publicvoidstart(){if(clockThread==null){ clockThread=newThread(this,"Clock"); clockThread.start();}}publicvoidrun(){while(clockThread!=null){ repaint(); try{ clockThread.sleep(1000); }catch(InterruptedExceptione){ }}}publicvoidpaint(Graphicsg){Datenow=newDate();g.drawString(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds(),5,10);}publicvoidstop(){clockThread.stop();clockThread=null;}}

          Clock.java

          第17頁

          run()方法是運行線程的主體,啟動線程時,由java直接調用publicvoidrun()。使用Runnable接口可以將線程的虛擬CPU、代碼和數據分開,形成一個比較清晰的模型。使用Runnable接口使得包含線程體的類還可以繼承其他類。直接繼承Thread類以后不能再繼承其他類,但編寫簡單,并可直接操縱線程;使用Runnable接口時,若要在run()方法中操縱線程,必須使用Thread.currentThread()方法。在具體應用中,采用哪種方法來構造線程體要根據具體情況而定。通常,當一個線程體所在的類已經繼承了另一個類時,就應該用實現Runnable接口的方法。

          2、創建線程的方式

          第18頁

          2、創建線程的方式

          Thread類的方法voidrun()線程所執行的代碼voidstart()throwsIllegalThreadStateException使程序開始執行,多次調用會產生例外voidsleep(longmilis)讓線程睡眠一段時間,此期間線程不消耗CPU資源voidinterrupt()中斷線程staticbooleaninterrupted()判斷當前線程是否被中斷(會清除中斷狀態標記)booleanisInterrupted()判斷指定線程是否被中斷

          線程狀態控制方法

          第19頁

          2、創建線程的方式

          Thread類的方法booleanisAlive()判斷線程是否處于活動狀態(即已調用start,但run還未返回)staticThreadcurrentThread()返回當前線程對象的引用voidsetName(StringthreadName)改變線程的名字StringgetName()獲得線程的名字StringtoString()例子:Thread[Thread-0,1,test]voidjoin([longmillis[,intnanos]])等待線程結束

          第20頁

          2、創建線程的方式

          Thread類的方法voiddestroy()銷毀線程voidstop()終止線程的執行voidsuspend()/voidresume()掛起線程/staticvoidyield()暫停當前線程,讓其他線程執行voidsetDaemon(booleanon)/voidsetPriority(intp)獲得線程的名字notify()/notifyAll()/wait()-從Object繼承而來

          第21頁

          3、線程的生命周期及控制

          線程是程序內部的一個順序控制流,它具有一個特定的生命周期。在一個線程的生命周期中,它總處于某一種狀態中。線程的狀態表示了線程正在進行的活動以及在這段時間內線程能完成的任務。

          第22頁

          3、線程的生命周期及控制

        相關PPT

        云計算-多線程ppt:這是云計算-多線程ppt,包括了云計算簡介,云計算的發展,多線程編程,MapReduce等內容,歡迎點擊下載。
        《jave培訓多線程PPT課件》是由用戶huangyixuan于2022-12-31 16:46:06上傳,屬于培訓教程PPT。

        標簽:

        相關PPT

        縮略圖

        • jave培訓多線程PPT課件
        舉報 日本娇妻在丈面前被耍了在线
        <del id="lllnj"></del>

            <track id="lllnj"><strike id="lllnj"><ol id="lllnj"></ol></strike></track>

            <pre id="lllnj"></pre><track id="lllnj"><strike id="lllnj"><ol id="lllnj"></ol></strike></track>
            <pre id="lllnj"><ruby id="lllnj"></ruby></pre>

            <track id="lllnj"></track>

            <track id="lllnj"></track>

              <pre id="lllnj"><ruby id="lllnj"></ruby></pre>