999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用JAVA多線程技術模擬龜兔賽跑

2008-12-31 00:00:00劉惠敏
電腦知識與技術 2008年34期

摘要:該文介紹了利用JAVA語言的多線程技術,對“龜兔賽跑”寓言故事的模擬。從模擬程序的具體設計思路,到詳細的實現過程,將技術的應用融入到一個有趣的問題的解決中,既可方便完成教學內容,又可有效激發學生學習興趣,對JAVA多線程技術的案例教學實現有很好的參考價值。

關鍵詞:多線程;模擬;龜兔賽跑;案例教學

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)34-1982-02

Tortoise and Hare Race simulation with JAVA Multi Thread Technology

LIU Hui-min

(Dept. of Computer Sci., Huanggang Polytechnic College, Huanggang 438002, China)

Abstract: A simulation for the Tortoise and Hare Race apologue story with Java multi thread technology has been introduced in this paper. By the detail description on the simulation program design thinking to implementation procedures, the technology application has been embedded into the solving of an interesting real problem. This simulation tool will make the teaching easily, and stimulates student’s interesting on learning effectively. It will also have good reference value for the teaching of Java multi thread technology with cases.

Key words: multi-thread; simulation; tortoise and hare race; teaching with cases

1 引言

“龜兔賽跑”的寓言故事家喻戶曉,如果能夠用直觀形象的方式將故事表達的內容演示出來,那將更有利于人們對故事的理解和認識,怎樣用程序的方式把故事模擬表示出來呢?

為了便于計算機模擬,需要把故事中的情節數字化。我們假定以下一組數據:比賽的總路程是60米,兔子每分鐘跑3米,烏龜每分鐘跑1米,貪睡的兔子每跑8分鐘就休息24分鐘,即兔子每跑24米路程就要休息24分鐘。由于按實際時間,模擬過程將會相對拉長,可用機器的1秒代表實際的1分鐘。

2 設計思路

賽跑的過程是兩個比賽對象并行前進的過程,考慮到應用需求,我們可以利用多線程技術,所謂多線程就是指同時存在幾個執行體,按幾條不同的執行線索共同工作的情況,這與我們的要求剛好吻合,Java語言對多線程提供強大的支持。

用直觀圖形描述龜兔跑步前進過程:每過一秒,兔子走過的路程文本框中增加三個“#”號,烏龜走過的路程文本框中增加一個“#”號。跑完路程結束線程,并顯示各自跑完全程總共用的時間。參考運行如圖1。

3 實現過程

3.1 構建模擬程序界面

考慮到需要動態表示烏龜和兔子賽跑過程,在此選擇用在已跑路上增加符號標識的方法,每米用一個“#”表示,烏龜和兔子隨著時間的推移,跑過的路程越來越多,那么“#”標識也在不斷地增加,在文本框中顯示不斷增加的“#”號串。

rabbit=new JTextField(50);

tortoise=new JTextField(50);

rab_road+=3;//跑過的路程加3米

rab_string=rab_string+\"###\";//兔子每跑一秒,增加三個“#”號

rabbit.setText(rab_string);//在文本框上顯示兔子跑過的路程

3.2 選擇多線程的實現方法

Java實現多線程有兩種途徑:第一種是通過定義繼承Thread類的子類;另一種方法是通過定義實現Runnable接口類。在java.lang包中定義了一個Thread類和Runnable接口,Runnable接口是所有線程類都必須繼承的接口,Thread類是系統預定義的線程類,它也實現了Runnable接口。在Runnable接口中只定義了一個run()方法,run()方法是用來定義實現線程的具體操作的,它被系統自動識別并執行,具體地說,線程在運行狀態時執行的就是run()方法,而無論在程序的任何地方都不能顯式地調用run()方法。

這兩種創建線程的方法其實都需要用到Thread類,區別在于第一種方法先定義一個Thread類的子類,然后在這個子類中實現run()方法,而第二種方法用戶先定義一個實現了Runnable接口的類,然后再創建這個自定義類的對象,并把它作為參數傳遞給Thread類構造函數來創建Thread類對象。

此程序用實現Runnable接口的方法來實現多線程,也就是在定義MyTestThread類的首部申明實現Runnable接口:

public class MyTestThread extends JApplet implements ActionListener,Runnable

在類的內部編寫run()方法:

public void run()

{ 實現功能的各語句 }

創建烏龜和兔子線程:

t1=new Thread(this,\"Rabbit\");//創建兩個線程

t2=new Thread(this,\"Tortoise\");

啟動線程,使其進入就緒狀態

t1.start();//啟動線程

t2.start();

3.3 兔子休息現實的模擬

兔子每跑8分鐘就休息24分鐘,程序通過兔子跑過的路程與24取模判斷是否跑了8分鐘,如果是,讓兔子線程調用sleep()方法,睡眠指定的時間。

if(rab_road%24==0)

{//兔子每跑24米就休息一次

try{

Thread.currentThread().sleep(sleeptime);

}//兔子線程睡眠,表示兔子休息不前進

catch(InterruptedException ee){}

rab_time+=sleeptime/1000;//計時器把兔子休息時間加上

}

3.4 線程的結束控制

跑完總路程,線程正常結束。

設置循環控制標志

boolean tostop=1;//線程結束標志

while(!tostop) { … }

結束條件滿足時,修改控制標志

if(rab_road==60)

{//如果跑到終點

lab3.setText(\"兔子總用時:\"+rab_time+\"秒\");//顯示兔子前進信息

tostop=true;//修改循環控制標志,結束線程

}

或者:

if(tor_road==60)

{//如果烏龜到達終點

lab4.setText(\"烏龜總用時:\"+tor_time+\"秒\");

tostop=true;

}

4 結束語

本文介紹的方法,利用JAVA程序設計語言的多線程技術,將龜兔賽跑的寓言故事很好地再現了,將其作為JAVA多線程技術的教學載體,一方面很好地將技術的使用融入到問題的解決過程中,另一方面這樣的應用需求容易激發學生的學習興趣,增強學生的成就感,可以說是一個很成功的教學案例,對課程案例教學有很好的參考價值。

參考文獻:

[1] 蔣峰.Java多線程編程中線程生存期和優先級的探討[J].計算機工程與設計,2004(5):37.

[2] 莫禮平,張兆海.基于Java中流式Socket并行通信的編程實現[J].電腦學習,2004(5):22.

[3] 封瑋,周世平.Java中的線程池及實現[J].計算機系統應用,2004(8):18-20.

[4] 張云苑.Java多線程并發技術的實現[J].電腦開發與應用,2004(9):46.

主站蜘蛛池模板: 亚洲欧洲日韩综合| 九色免费视频| 午夜爽爽视频| 亚洲啪啪网| 免费国产黄线在线观看| 在线免费亚洲无码视频| 国产成人无码AV在线播放动漫| 亚洲一区网站| 亚洲精品爱草草视频在线| 深爱婷婷激情网| 国产一区二区三区免费观看| 91久久国产热精品免费| 手机在线国产精品| 18黑白丝水手服自慰喷水网站| 99久久精品国产自免费| 欧美成人精品欧美一级乱黄| 国产精品免费电影| 国产免费网址| 91在线无码精品秘九色APP | 美女视频黄频a免费高清不卡| 日韩精品欧美国产在线| 在线观看免费人成视频色快速| 日韩高清无码免费| 久久成人免费| 精品视频福利| 欧美中文字幕在线播放| 国产在线观看99| 波多野结衣中文字幕久久| 国产va在线| 国产尤物视频网址导航| 拍国产真实乱人偷精品| 在线国产综合一区二区三区 | 日本一本正道综合久久dvd| 深爱婷婷激情网| www.日韩三级| 久久一本精品久久久ー99| 91麻豆国产精品91久久久| 呦视频在线一区二区三区| 精品在线免费播放| 国产超碰一区二区三区| 97国产一区二区精品久久呦| 久草热视频在线| 99久久性生片| 91小视频在线观看| 日韩第八页| 92午夜福利影院一区二区三区| 日本一区二区三区精品国产| 欧美一区精品| 国产无码精品在线| 国产女人综合久久精品视| 老熟妇喷水一区二区三区| 久久综合婷婷| 高清免费毛片| 久久伊伊香蕉综合精品| 久久精品91麻豆| 色偷偷男人的天堂亚洲av| 丁香六月综合网| 亚洲国产成人久久77| 国产成在线观看免费视频| 97se亚洲| 欧美激情,国产精品| 亚洲国产欧洲精品路线久久| 72种姿势欧美久久久久大黄蕉| 欧美啪啪视频免码| 日韩欧美国产三级| 欧美在线观看不卡| a级毛片一区二区免费视频| 国产小视频在线高清播放| 青青操国产| 日韩精品无码一级毛片免费| 国产在线拍偷自揄拍精品| 中文字幕丝袜一区二区| 亚洲精品波多野结衣| 日本三级黄在线观看| 欧美精品综合视频一区二区| 看你懂的巨臀中文字幕一区二区| 福利视频99| 91午夜福利在线观看| 欧美日韩国产在线观看一区二区三区 | 国产在线观看成人91| 亚洲成A人V欧美综合| 99热这里只有精品免费国产|