freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[理學(xué)]jaa2實(shí)用教程課件線程-展示頁

2025-01-28 14:42本頁面
  

【正文】 Thread類 (續(xù) ) 14 ? 結(jié)果說明 – main線程已經(jīng)執(zhí)行完后,新線程才執(zhí)行完 – main函數(shù)調(diào)用 ()方法啟動新線程后并不等待其 run方法返回就繼續(xù)運(yùn)行 (執(zhí)行 ()),不影響原來的 main函數(shù)的運(yùn)行 ? 源程序修改 – 如果啟動新線程后希望主線程多持續(xù)一會再結(jié)束,可在start語句后加上讓當(dāng)前線程( main)休息 1毫秒的語句: try { (1000)。 } (The factorial of +num+ is +result)。 while(i0) { result=result*i。 int result=1。 public FactorialThread( int num ) { =num。 (main thread ends )。 FactorialThread thread=new FactorialThread(10)。i++) { (我是左手線程 )。 } } } class Lefthand extends Thread { public void run() { for(int i=1。i=3。i++) { (我是主線程 )。 for(int i=1。 ()。 left=new Lefthand() 。原線程將同時(shí)繼續(xù)往下執(zhí)行 – 它位于 ,因而程序開頭不用 import任何包就可直接使用 ? 例子: public class Example9_1 { public static void main(String args[]) { Lefthand left。 這個(gè)子類應(yīng)該重寫 Thread類的 run方法,在 run方法中寫入需要在新線程中執(zhí)行的語句段。 ? 如果 main方法中又創(chuàng)建了其他線程,那么 JVM就要在主線程和其他線程之間輪流切換, main方法即使執(zhí)行完最后的語句, JVM也不會結(jié)束程序,JVM一直要等到程序中的所有線程都結(jié)束之后,才結(jié)束我們的 Java應(yīng)用程序。 ? 在 main方法的執(zhí)行中再創(chuàng)建的線程,就稱為程序中的其它線程。 ? 就緒狀態(tài) :線程等待 CPU ? 運(yùn)行狀態(tài) : start()方法開始執(zhí)行 ? 中斷 (阻塞 )狀態(tài) : sleep(), wait(), I/O 完成 or 發(fā)布 I/O 請求 – sleep(): 使當(dāng)前線程進(jìn)入等待狀態(tài),參數(shù)設(shè)定其等待時(shí)間 – wait(): 使當(dāng)前線程進(jìn)入等待狀態(tài),調(diào)用 nofify(), or notifyAll(), 使其重新進(jìn)入線程等待隊(duì)列 ? 死亡 : – run() 方法完成 – stop() 方法被調(diào)用 6 線程的生命周期 7 ? 誕生狀態(tài) – 線程剛剛被創(chuàng)建 ? 就緒狀態(tài) – 線程的 start 方法已被執(zhí)行 – 線程已準(zhǔn)備好運(yùn)行 ? 運(yùn)行狀態(tài) – 處理機(jī)分配給了線程,線程正在運(yùn)行 ? 阻塞狀態(tài)( Blocked) – 在線程發(fā)出輸入 /輸出請求且必須等待其返回 – 遇到用 synchronized標(biāo)記的方法而未獲得其監(jiān)視器暫時(shí)不能進(jìn)入執(zhí)行時(shí) ? 休眠狀態(tài)( Sleeping) – 執(zhí)行 sleep方法而進(jìn)入休眠 ? 死亡狀態(tài) – 線程已完成或退出 線程的幾種基本狀態(tài) (續(xù) ) 8 ? 主線程: Java應(yīng)用程序總是從主類的 main()方法開始執(zhí)行。第九章 線程 2 目錄 ? Java中的線程 ? 線程的生命周期 ? Thread的子類創(chuàng)建線程 ? 使用 Runable接口 ? 線程的常用方法 ? 線程的優(yōu)先級 ? 線程同步 ? 在同步方法中使用 wait()、 notify 和 notifyAll()方法 ? 掛起、恢復(fù)和終止線程 ? 本章小結(jié) 3 線程的概念 ? 進(jìn)程和線程的區(qū)別 ? 進(jìn)程 – 一個(gè)獨(dú)立程序的每一次運(yùn)行稱為一個(gè)進(jìn)程,例如 ? 用字處理軟件編輯文稿時(shí),同時(shí)打開 mp3播放程序聽音樂,這兩個(gè)獨(dú)立的程序在同時(shí)運(yùn)行,稱為兩個(gè)進(jìn)程 – 設(shè)置一個(gè)進(jìn)程要占用相當(dāng)一部分處理器時(shí)間和內(nèi)存資源 – 大多數(shù)操作系統(tǒng)不允許進(jìn)程訪問其他進(jìn)程的內(nèi)存空間,進(jìn)程間的通信很不方便,編程模型比較復(fù)雜 4 ? 線程 – 一個(gè)程序中多段代碼同時(shí)并發(fā)執(zhí)行,稱為多線程 – 通過多線程,一個(gè) 進(jìn)程 表面上看同時(shí)可以執(zhí)行一個(gè)以上的任務(wù) ——并發(fā) – 創(chuàng)建線程比創(chuàng)建進(jìn)程開銷要小得多,線程之間的協(xié)作和數(shù)據(jù)交換也比較容易 (進(jìn)程獨(dú)站資源 ) – 線程間共享資源(內(nèi)存、代碼、數(shù)據(jù))有利于并行處理 線程的概念 (續(xù) ) 5 線程的狀態(tài)與生命周期 ? 新建 :當(dāng)一個(gè) Thread類或其子類的對象被聲明并創(chuàng)建時(shí),新生的線程對象處于新建狀態(tài)。此時(shí)它已經(jīng)有了相應(yīng)的內(nèi)存空間和其他資源。當(dāng) JVM加載代碼,發(fā)現(xiàn) main方法之后,啟動的線程稱作“主線程”,該線程負(fù)責(zé)執(zhí)行main方法。 ? 如果 main方法中沒有創(chuàng)建其他的線程,那么當(dāng)main方法執(zhí)行完最后一個(gè)語句, JVM就會結(jié)束Java應(yīng)用程序。 9 Thread類 ? Thread類 – 在 Java程序中創(chuàng)建多線程的方法之一是繼承 Thread類 – Thread類封裝了 Java程序中一個(gè)線程對象需要擁有的屬性和方法 – 從 Thread類派生一個(gè)子類,并創(chuàng)建這個(gè)子類的對象,就可以產(chǎn)生一個(gè)新的線程。 這個(gè)子類的對象需要調(diào)用 start方法來啟動,新線程將自動進(jìn)入 run方法。 Righthand right。 //創(chuàng)建線程 right=new Righthand()。 ()。i=3。 } } } class Righthand extends Thread { public void run() { for(int i=1。i++) { (我是右手線程 )。i=3。 } } } 11 ? Java中創(chuàng)建線程的兩種方法 – Thread 類的子類 創(chuàng)建線程對象,子類重寫 Thread類中的 run()方法 – 使用 Thread類直接創(chuàng)建線程對象,但需要 使用 Runable接口 12 Thread類 (續(xù) ) ? 在新線程中完成計(jì)算某個(gè)整數(shù)的階乘 public class Ex8_1 { public static void main( String [] args ) { (main thread starts)。 ()。 } } class FactorialThread extends Thread { private int num。 } 13 public void run() { int i=num。 (new thread started )。 i=i1。 (new thread ends)。 } catch(Exception e){}。默認(rèn)名為 Threadn,n是從 0開始遞增的整數(shù) public Thread(String name) 構(gòu)造一個(gè)新的線程對象,并同時(shí)指定線程名 public static Thread currentThread() 返回當(dāng)前正在運(yùn)行的線程對象 public static void yield() 使當(dāng)前線程對象暫停,允許別的線程開始運(yùn)行 public static void sleep(long millis) 使當(dāng)前線程暫停運(yùn)行指定毫秒數(shù),但此線程并不失去已獲得的鎖旗標(biāo)。 public final void stop() 停止線程運(yùn)行,釋放該線程占用的對象鎖旗標(biāo)。這個(gè)方法必須在 start()方法前使用 public final void checkAccess() 判斷當(dāng)前線程是否有權(quán)力修改調(diào)用此方法的線程 public void setName(String name) 更改本線程的名稱為指定參數(shù) public final boolean isAlive() 測試線程是否處于活動狀態(tài),如果線程被啟動并且沒有死亡則返回 true Thread類 (續(xù) ) —— 常用 API函數(shù) 19 ? 創(chuàng)建 3個(gè)新線程,每個(gè)線程睡眠一段時(shí)間( 0~ 6秒),然后結(jié)束 public class Ex8_2 { public static void main( String [] args ) { //創(chuàng)建并命名每個(gè)線程 TestThread thread1 = new TestThread( thread1 )。 TestThread thread3 = new TestThread( thread3 )。 ()。 // 啟動線程 2 ()。 } } Thread類 (續(xù) ) —— 例 8_2 20 class TestThread extends Thread { private int sleepTime。 //調(diào)用父類構(gòu)造函數(shù)為線程命名 sleepTime = ( int ) ( () * 6000 )。 ( sleepTime )。 ( getName() + finished ) } } Thread類 (續(xù) ) —
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1