网站大量收购闲置独家精品文档,联系QQ:2885784924

Java的执行绪学习课件.pptxVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第10章Java的執行緒10-1執行緒的基礎10-2Java執行緒的使用方法10-3Java執行緒的同步10-4管道串流的執行緒

10-1執行緒的基礎10-1-1Java的執行緒10-1-2多工與多執行緒

10-1-1Java的執行緒-說明「執行緒」(Thread)也稱為「輕量行程」(LightweightProcess),其執行過程類似上述程式執行,只是執行緒不能單獨存在或執行,一定需要隸屬於一個程式,由程式啟動執行緒,如右圖所示:

10-1-1Java的執行緒-多執行緒如果程式碼本身沒有先後依存關係,程式能夠分割成多個同步執行緒來一起執行,這種程式設計方法稱為「平行程式設計」(ParallelProgramming),如右圖所示:

10-1-2多工與多執行緒目前的作業系統都強調「多工」(Multitasking)。例如:微軟的Windows作業系統屬於一套多工的作業系統,可以同時執行小畫家、記事本和小算盤等多個應用程式。不同於作業系統的多工,「多執行緒」(Multithreaded)是指在單一應用程式擁有多個執行流程。例如:Web瀏覽程式可以在下載網頁檔案的同時顯示動畫、播放音樂或捲動視窗瀏覽網頁內容。

10-2Java執行緒的使用方法10-2-1實作Runnable介面10-2-2繼承Thread類別

10-2Java執行緒的使用方法Java執行緒是建立Thread類別的物件,一共有2種方式建立多執行緒應用程式,如下所示:實作Runnable介面。繼承Thread類別。

10-2-1實作Runnable介面-架構Swing應用程式繼承自JFrame,JavaApplet繼承自JApplet,就只能實作Runnable介面的run()方法來建立多執行緒的應用程式,如下所示:classUserThreadextendsUserClassimplementsRunnable{publicUserThread(intlength){}publicvoidrun(){………}}

10-2-1實作Runnable介面-啟動接著可以建立Thread物件和啟動執行緒,如下所示:UserThreadut1=newUserThread(5);Threadt1=newThread(ut1,執行緒A);t1.start();上述程式碼在建立好UserThread物件ut1後,使用ut1物件建立Thread物件的執行緒,參數字串是執行緒名稱,最後使用start()方法啟動執行緒。

10-2-1實作Runnable介面-建構子Thread類別的建構子,如下表所示:

10-2-1實作Runnable介面-相關方法Thread類別的相關方法,如下表所示:

10-2-2繼承Thread類別-架構若類別沒有繼承其他類別,就可以直接繼承Thread類別,然後覆寫run()方法建立執行緒物件,如下所示:classUserThreadextendsThread{publicUserThread(intlength,Stringname){}publicvoidrun(){………}}

10-2-2繼承Thread類別-啟動接著就可以建立Thread物件,啟動執行緒,如下所示:UserThreadut1=newUserThread(5,執行緒A);ut1.start();上述程式碼在建立好UserThread物件ut1後,這是Thread物件,所以可以直接使用start()方法啟動執行緒。

10-3Java執行緒的同步-說明在第10-2節程式範例的執行緒間並沒有任何關係,簡單的說,執行緒的目的只是為了加速程式執行。另一種情況是執行緒間擁有生產和消費者的關係或是同時存取相同資源,當有此情況,就需要考量「同步」(Synchronization)問題。

10-3Java執行緒的同步-生產者和消費者模型生產者和消費者模型(Producer/ConsumerModel)生產者和消費者模型是指一個執行緒產生資料,稱為生產者,另一個執行緒讀取生產者產生的資料,稱為消費者,產生的資料是儲存在共用的資料儲存緩衝區稱為「佇列」(Queue),這是一種先進先出的資料結構,如下圖所示:

10-3Java執行緒的同步-synchronized關鍵字synchronized關鍵字生產者和消費者是同步存取同一個資源物件,所以存取的enqueue()和dequeue()方法需要使用synchronized關鍵字鎖定資源,稱為同步方法(SynchronizedMethod),如下所示:public

文档评论(0)

hongbing2021 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档