西南科技大學(xué) 劉涌 JAVA 實(shí)驗(yàn)六_第1頁(yè)
西南科技大學(xué) 劉涌 JAVA 實(shí)驗(yàn)六_第2頁(yè)
西南科技大學(xué) 劉涌 JAVA 實(shí)驗(yàn)六_第3頁(yè)
西南科技大學(xué) 劉涌 JAVA 實(shí)驗(yàn)六_第4頁(yè)
西南科技大學(xué) 劉涌 JAVA 實(shí)驗(yàn)六_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

面向?qū)ο蟪绦蛟O(shè)計(jì)A(Java)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:多線程實(shí)驗(yàn)實(shí)驗(yàn)類(lèi)型:指導(dǎo)教師:劉涌專(zhuān)業(yè)班級(jí):信安1203姓名:黃學(xué)強(qiáng)學(xué)號(hào):20111899實(shí)驗(yàn)地點(diǎn):東六E301實(shí)驗(yàn)成績(jī):日期:2014年4月30日實(shí)驗(yàn)六多線程實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模壕毩?xí)多線程類(lèi)的兩種實(shí)現(xiàn)方法,理解多線程程序的生命周期。二、實(shí)驗(yàn)內(nèi)容:編寫(xiě)一多線程程序,實(shí)現(xiàn)如下功能:(1)一個(gè)線程進(jìn)行階乘和的運(yùn)算(1!+2!+3!+……+30!),每次階乘計(jì)算時(shí)間隨機(jī)間隔0.5-1秒;(2)另一個(gè)線程每隔0.1秒時(shí)間讀取上個(gè)線程的運(yùn)算結(jié)果和計(jì)算進(jìn)程,并在圖形界面中實(shí)時(shí)顯示結(jié)果。三、實(shí)驗(yàn)要求1正確設(shè)計(jì)顯示運(yùn)行結(jié)果和計(jì)算進(jìn)程的圖形用戶界面;2分別采用Thread類(lèi)的子類(lèi)和Runable接口兩種方式完成兩個(gè)線程的設(shè)計(jì);3進(jìn)行全面的測(cè)試并分析測(cè)試結(jié)果;四、實(shí)驗(yàn)設(shè)計(jì)1、先用JavaApplication方式建立應(yīng)用程序框架。其中選用frameonscreen;2、實(shí)現(xiàn)界面設(shè)計(jì)。其中用xyLayout布局。3、用兩種方法實(shí)現(xiàn)多線程方法一、設(shè)計(jì)兩個(gè)線程ComputeThread和ReadThread線程分別繼承Thread線程。ComputeThread線程實(shí)現(xiàn)階乘和運(yùn)算,用for循環(huán)實(shí)現(xiàn)階乘和運(yùn)算。ReadThread線程實(shí)現(xiàn)在窗口顯示結(jié)果和進(jìn)程。方法二、ComputeThread和ReadThread線程分別接口Runnable。運(yùn)算方法同上。五、實(shí)驗(yàn)過(guò)程1、按照設(shè)計(jì)的步驟實(shí)現(xiàn)。遇到的問(wèn)題:Text只顯示到6!解決方法:刪除ReadThread的run()方法下while循環(huán)語(yǔ)句中的count++,因?yàn)镽eadThread線程和ComputeThread線程不同步。2、用setValue()方法顯示進(jìn)度條,setText()方法顯示結(jié)果。六、實(shí)驗(yàn)結(jié)果討論與分析進(jìn)行全面的測(cè)試并分析測(cè)試結(jié)果;新建——Thread.State.NEW:當(dāng)一個(gè)

Thread

類(lèi)或者其子類(lèi)的對(duì)象被聲明并創(chuàng)建時(shí),新的線程對(duì)象處于新建狀態(tài),此時(shí)它已經(jīng)有了相應(yīng)的內(nèi)存空間和其他資源start方法尚未被調(diào)整用就緒可執(zhí)行狀態(tài)——Thread.State.RUNNABLE:處于新建狀態(tài)的線程被啟動(dòng)后,將進(jìn)入線程隊(duì)列排隊(duì),這個(gè)時(shí)候具備了運(yùn)行的條件,一旦輪到

CPU

的時(shí)候,就可以脫離創(chuàng)建它的主線程獨(dú)立開(kāi)始自己的生命周期運(yùn)行:就緒的線程被調(diào)度進(jìn)入運(yùn)行狀態(tài),每一個(gè)

Thread

類(lèi)及其子類(lèi)的對(duì)象都有一個(gè)重要的run方法,當(dāng)線程對(duì)象被調(diào)度執(zhí)行的時(shí)候,它將自動(dòng)調(diào)用本對(duì)象的

run方法,從第一句代碼開(kāi)始執(zhí)行。簡(jiǎn)要說(shuō)明你在該實(shí)驗(yàn)中的收獲與體會(huì)。 (1)首先:java

程序是建立在線程之上的。.

(2)創(chuàng)建線程必須繼承

Thread

class

它已經(jīng)為線程的創(chuàng)建和運(yùn)行做了必要的配置。run是線程就重要的方法。你必須覆寫(xiě)這個(gè)方法達(dá)到你想要的目的。(3)run方法所包含的代碼就是和其他線程同時(shí)運(yùn)行的代碼以達(dá)到同一時(shí)刻運(yùn)行多段代碼的目的。當(dāng)終止了

run以后。這個(gè)線程也就結(jié)束了。調(diào)用線程的

start方法才會(huì)執(zhí)行

run方法。體會(huì):通過(guò)實(shí)驗(yàn)設(shè)計(jì)了正確的顯示運(yùn)行結(jié)果和計(jì)算進(jìn)程的圖形用戶界面;完成了對(duì)分別采用Thread類(lèi)的子類(lèi)和Runable接口兩種方式完成兩個(gè)線程的設(shè)計(jì);并且進(jìn)行全面的測(cè)試并分析測(cè)試結(jié)果;對(duì)Java的學(xué)習(xí)有了很大的提升作用。附錄:代碼階乘運(yùn)算for(n=1;n<=30;n++){save=save*n;//進(jìn)行階乘sum=sum+save;//進(jìn)行階乘和運(yùn)算str="+"+n+"!";str1=str1+str;//字符串相加try{Thread.sleep(500+(int)(Math.random()*500));//隨機(jī)生成05~1秒}catch(InterruptedExceptionex){}}顯示結(jié)果和進(jìn)度條while(true){f.text.setText(ct.str1);//顯示階乘字符f.jd.setValue(ct.n);//顯示進(jìn)度條Strings=String.valueOf(ct.sum);f.text1.setText(s);//顯示結(jié)果try{Thread.sleep(100);//休眠100毫秒}catch(InterruptedExceptionex){}}單擊開(kāi)始按鈕voidjButton1_actionPerformed(ActionEvente){ComputeThreadct=newComputeThread();ReadThreadrt=newReadThread(ct,this);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論