执行绪的基础.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
执行绪的基础

執行緒的基礎 傳統的程式執行只有一個執行流程,從執行主程式開始,在經過流程控制的轉折後不論路徑是哪一條,從頭到尾仍然只有一條單一路徑 Java的執行緒 Java的[執行緒](Threads)也稱為[輕量行程](Lightweight Process),其執行的過程類似上述傳統的程式執行,但是執行緒不能單獨存在或獨立執行,一定隸屬於程式,由程式來啟動執行緒 上圖的Java程式產生一個執行緒,這個執行緒是在程式中執行,我門可以將他視為是包含在Java程式中的小程式 如果程式碼本身沒有先後依存的關係, 例如:因為b( )方法需要使用到a( )方法的執行結果需要在執行完a( )方法後,才能執行b方法,所以a( )方法和b( )方法並不能同時執行,也就是無法使用兩個執行緒同步執行 如果程式能夠分割成多個同步執行緒來一起執行,這種程式設計方法稱為[平行程式設計](Parallel Programming)如下圖所示: java程式擁有2個執行緒且同步執行,也就是說這個程式擁有多個執行流程,能夠在通一個程式執行,如此就可以增加程式的執行效率 多工與多執行緒 多工(Multitasking),例如:微軟的Windows作業系統屬於一種多工的作業系統,可以同時啟動小畫家,記事本合小算盤等多個應用程式 多執行緒(Multithreaded)是指在單一應用程式擁有多個執行流程,例如:Web瀏覽器程式可以在下載網頁檔案時,同時顯示動畫,撥放音樂或捲動視窗瀏覽網頁內容 Java執行緒的使用方法 Java語言的執行緒是建立在Thread類別物件,有兩種方式建立多執行緒的應用程式 實作Runnable介面 繼承Thread類別 實作Runnable介面 因為Java語言不支援多重繼承,如果類別已經繼承其他類別,Java程式就只能實作Runnable介面,然後實作run( )方法建立多執行緒應用程式 Class Mythread exends Myclass implements Runnable { //建構子 Public MyThread(int length){} //執行執行緒 Public void run( ) { ……………. } } 接者可以建立Thread物件來啟動執行緒 MyThread mt1=new Mythread(5); thread t1=new Thread(mt1,”執行緒A”); t1.start( ); 程式碼在建立好MyThread物件mt1後,使用mt1物件建立Thread物件的執行緒,參數字串是執行緒的名稱,最後使用start( )方法啟動執行緒; 範例:Ch15_2_1 Thread類別的建構子,如下表所示: 建立Thread物件,參數String是執行緒的名稱,Runnable是實作Runnable介面的物件 Thread類別的相關方法 繼承Thread類別 如果類別沒有繼承其他類別,Java程式就可以直接繼承Thread類別,然後覆寫run( )方法建立執行緒物件 Class MyThread extends Thead { //建構子 public MyThread(int length,String name) 執行執行緒 Public void run( ) { ……… } } MyThread類別是繼承自Thread類別,並且覆寫run()方法 接者建立Thread物件啟動執行緒 MyThread mt1=new MyThread(5,”執行緒A”); mt1.start( ); 程式碼在建立好MyThread物件mt1後,這是一個Thread物件,所以可以直接使用start( )方法啟動執行緒 範例:Ch15_2_2 Java執行緒的同步 之前的程式碼執行緒間並沒有任何的關連,簡單的說,程式使用執行緒只是為了加速執行 如果執行緒間擁有生產合消費者關係或是同時存取同一個資源,在Java程式就要考慮[同步](Synchronization)問題 生產者和消費者模型(Producer/Consumer Model) 生產者合消費者模型是指一個執行緒產生資料,稱為生產者, 另有一個執行緒讀取生產者產生的資料,稱為消費者, 產生的資料是儲存在共用的資料儲存區,一種稱為[佇列](Queue)的資料結構佇列如同一個緩衝區,先存入佇列的資料會先取出 生產者將產生的資料送入佇列的一端,消費者可以從佇列的另一端讀取資料 Synchronized關鍵字 生產者和消費者會同步存取同一個佇列的資源物件,所以存取佇列的enqueue( )和dequeue( )方法需要使

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档