- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程式碼撰寫如下: * * * * 上述程式碼分析如下: 第2行建立一個靜態的籃球處理機物件ball,importball與outportball類別中會應用到此物件。 第15~19行設定籃球代號為隨機1~10的號碼,每輸入一次就等待0.5秒。 第33~37行顯示有哪幾個號碼的籃球,每輸出一次就等待0.5秒。 第50~61行的importball函式表示當索引值index大於或等於9時,就等待1秒,或執行到第60行喚醒執行緒。 第62~74行的outportball函式表示當索引值index小於0時,就等待執行到第72行喚醒執行緒。 * 完成後,執行程式的畫面顯示如下: * 溫故知新-1: * 溫故知新-2: * 自我突破習題-選擇題: * 自我突破習題-實作題: * * * 上述建立多個執行緒的程式碼說明如下: 上述程式碼與範例檔ch11_01_02的差別在於粗體字的部份,因為利用Runnable介面必須要間接建立執行緒,所以要在程式碼第15與17行利用Thread類別建立物件。 完成後,執行程式的畫面與範例檔ch11_01_02相同。 * 11-2 管理執行緒 11-2.1 執行緒的生命週期 11-2.2 在排程中加入執行緒 11-2.3 執行緒的同步化 11-2.4 執行緒之間的溝通 * 前言: 執行緒可能會隨著不同的操作,而處於不同的狀態,當程式中有多個執行緒同時執行時,就必須管理每個執行緒的執行方式,這樣這些執行緒才不會互相干擾。 * 11-2.1 執行緒的生命週期 其實每個執行緒在新建到終止之間,都會處於生命週期的四種狀態之一,執行緒的生命週期如下圖所示: * 有關生命週期的說明如下-1: 新建(new):利用關鍵字new建立新的執行緒物件,系統尚未配置CPU資源,就是處於此狀態。 執行start函式,執行緒會進入可執行(runnable)狀態。 執行stop或run函式結束時,執行緒會進入死亡(dead)狀態。 可執行(runnable):啟動執行緒後,新的執行緒會進入佇列(queue)中等待執行的機會,程式會先執行優先權值較高的執行緒。 執行yield函式,執行緒會將執行權轉讓給其他執行緒。 執行stop或run函式結束時,執行緒會進入死亡(dead)狀態。 執行sleep、suspend、wait函式或等待I/O完成時,執行緒會進入不可執行(not runnable)狀態。 * 有關生命週期的說明如下-2: 不可執行(not runnable):執行緒處於凍結的狀態,等待重新進入佇列的機會。 執行stop或run函式結束時,執行緒會進入死亡(dead)狀態。 當sleep函式的睡眠時間結束,或是執行interrupt函式時,執行緒會回到可執行狀態。 執行resume函式可以解除suspend函式凍結的執行緒,重新回到可執行狀態。 執行notify函式可以解除wait函式凍結的執行緒,重新回到可執行狀態。 當I/O(輸入/輸出動作)完成時,執行緒會重新回到可執行狀態。 死亡(dead):當執行stop函式或是run函式的程式區塊結束時,就會進入死亡狀態。 * 11-2.2 在排程中加入執行緒 如果程式中存活多個執行緒,而希望程式按照想要的順序,執行執行緒中的敘述時,就可以利用join函式暫停目前正在執行的執行緒,然後執行指定的執行緒內容。 * 下面先來看看沒有利用join函式執行執行緒物件的程式碼: * * 完成後,畫面顯示如下: 完成後執行程式,本來希望在最後一行才顯示字串“複習功課完畢...”,但是執行畫面卻顯示在第一行。這是因為雖然第6與7行啟動執行緒math與english,但Java本身會自動執行main執行緒的start函式,所以先顯示第8行的字串後,才會執行執行緒中run函式的程式碼,畫面顯示如下: 範例檔ch11_02_02a可能不是設計者想要的執行結果,這時可以利用join函式暫停目前的main執行緒,然後先執行指定的執行緒,等到指定的執行緒執行完成,再接著執行被暫停的main執行緒。 * 下面將範例檔ch11_02_02a修改為先執行math與english執行緒,再執行main執行緒: * 上述程式碼與範例檔ch11_02_02a的差別在於粗體字的部分,第8與13行利用join函式強制程式先執行math與english執行緒,值得注意的是,使用join函式必須在程式中拋出InterruptedException例外。 * 完成後,執行程式的畫面顯示如下: * 11-2.3 執行緒的同步化 如果程式同時執行同一個類別產生的多個執行緒,因為這些執行緒共用相同的成員變數,所以當進行新增、刪除或修改資料等動作時,可能會存取到錯誤的資料,例如:X物件在修改物件的sum成員變數時,
您可能关注的文档
- 悦读模式就此开启部编义务教育小学语文教科书和课件.ppt
- 情商拓展——自控课件.ppt
- 情境三旅游职场课件.ppt
- 情境引入课件.ppt
- 情境领导力训练课程课件.ppt
- 惠及全民及子孙后代的重大举措学习十八届三中全会关课件.ppt
- 想一想基因型YYrr和yyRR的亲本杂交,F2表现型中亲本类型和...课件.ppt
- 想要有什么样的明天,今天就要付出什么样的 努力!!课件.ppt
- 感动话题作文示例-[题目设计]在我们生活中,令我们课件.ppt
- 感谢文魁资讯对本公司鼎力支持出版-1天学会转换课件.ppt
- (全年1月-12月)2026年党支部“三会一课”及主题党日活动计划表.docx
- 局党组2025年度落实“第一议题”学习制度情况报告+镇关于2025年度贯彻落实“第一议题”制度和政治要件闭环落实工作情况的报告.docx
- 在2026年元旦放假前机关全体人员会议上的讲话、在春节前党员干部廉政谈话会上的讲话.docx
- 2026年1月支部委员会会议记录+1月“三会一课”方案.docx
- 2026年1月“三会一课”方案(支委会方案、党员大会、党小组会、党课)+2026年党支部“三会一课”及主题党日活动计划表(1月-12月).docx
- 党委书记在2025年度党支部书记抓党建工作述职评议会上的点评+2025年度抓基层党建工作述职评议会议上的讲话.docx
- 在司法局2025年度述职评议大会上的总结讲话+市委组织部2025年度述职述廉述党建工作总结.docx
- 2篇 在小学2025学年总结暨寒假工作部署会上的讲话.docx
- 中国国家标准 GB/T 32073.2-2025无损检测 测量残余应力的超声检测方法 第2部分:体波法.pdf
- GB/T 32073.2-2025无损检测 测量残余应力的超声检测方法 第2部分:体波法.pdf
最近下载
- ZOOM声乐乐器F6 使用说明书 (Chinese)用户手册.pdf
- 高中数学人教版基本不等式习题及解析.pdf VIP
- 东方之珠 歌词打印版.pdf VIP
- 河南省2025年高考综合改革适应性演练化学试题及答案.pdf VIP
- PPT-104型分配阀分解组装及检修讲解.pptx VIP
- 期末综合试题-2025-2026学年人教版八年级英语上册期末复习.pdf VIP
- 云南省2024年春季学期期末普通高中学业水平考试信息技术试题.docx VIP
- 加速康复外科(ERAS)助力手术患者康复“提速”.pptx VIP
- 期末综合试题-2025-2026学年人教版七年级英语上册期末复习.pdf VIP
- 2025年江门市中心医院医护人员招聘参考题库附答案解析.docx VIP
原创力文档


文档评论(0)