日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

在J2ME中使用Timer和TimerTask來實(shí)現(xiàn)多線程_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:分割字符串以增強(qiáng)J2ME的String能力
從JDK1.4以后,String類中新增了split方法來實(shí)現(xiàn)字符串的分割,但是在J2ME中卻沒有該方法(MIDP2.0中也沒有實(shí)現(xiàn)),但是在實(shí)際使用過程中,有些時(shí)候的確要用到這種操作,這里將我以前實(shí)

眾所周知,Java語言在語言的低層就支持多線程,在Java中可以使用兩種方式來實(shí)現(xiàn)多線程操作,這兩種方式依次是:

1、繼承Thread類

2、實(shí)現(xiàn)Runnable接口

但是Java語言中還有兩個(gè)類,可以組合來實(shí)現(xiàn)多線程的控制,這兩個(gè)類就是java.util包中的Timer和TimerTask類。和上面的實(shí)現(xiàn)方式相比,使用這種方式來實(shí)現(xiàn)多線程,可以很方便的開啟多個(gè)線程,并且代碼的結(jié)構(gòu)比較清晰,但是創(chuàng)建類的數(shù)量比較多,系統(tǒng)開銷稍微大一些。下面詳細(xì)進(jìn)行一下介紹:

Timer類是一個(gè)定時(shí)器,可以每隔一段固定的時(shí)間做一件事情,而且可以很方便的停止這些動作。依次為:

構(gòu)造對象: Timer timer = new Timer();

對象創(chuàng)建以后,可以使用其中的schedule或者是scheduleAtFixedRate方法起啟動一個(gè)任務(wù)(Task)動作。需要停止時(shí),可以調(diào)用Timer對象的cancel方法實(shí)現(xiàn),該方法可以停止該Timer啟動的所有任務(wù)(Task)。

TimerTask類是一個(gè)線程類,所有線程的動作代碼都寫在該類內(nèi)部。TimerTask是一個(gè)抽象類,在實(shí)際使用過程中,一般是繼承TimerTask類,然后實(shí)現(xiàn)實(shí)際的操作,停止TimerTask可以使用TimerTask對象里面的cancel方法。

下面是一個(gè)實(shí)現(xiàn)簡單的數(shù)字變化的J2ME代碼:

package

shandong;

import java.util.*;

import javax.microedition.lcdui.*;

/**

* 使用Timer和TimerTask實(shí)現(xiàn)多線程

* 該代碼實(shí)現(xiàn)的功能是屏幕上的數(shù)字一直增加,按下5鍵暫停,再次按下5鍵繼續(xù)增加

*/

public class NumberCanvas extends Canvas {

/**定時(shí)器*/

Timer timer;

/**屏幕上顯示的數(shù)字*/

private int number = 0;

/**屏幕寬度*/

private int width;

/**屏幕高度*/

private int height;

public NumberCanvas() {

//獲得屏幕的高度和寬度

width = this.getWidth();

height = this.getHeight();

//啟動線程

start();

}

/**

* 啟動線程

*/

private void start(){

if(timer == null){

//啟動定時(shí)器

timer = new Timer();

timer.schedule(new NumberTimerTask(),0,300);

}

}

/**

* 停止線程

*/

private void stop(){ if(timer != null){

//停止線程

timer.cancel();

timer = null;

}

}

/**

* 按鍵處理

* @param keyCode int 按下的鍵值

*/

public void keyPressed(int keyCode){

//判斷按下的數(shù)字鍵5

if(keyCode == Canvas.KEY_NUM5){

//判斷當(dāng)前的狀態(tài)

if(timer == null){

start();

}else{

stop();

}

}

}

protected void paint(Graphics g) {

//清屏

g.setColor(0xffffff);

g.fillRect(0,0,width,height);

g.setColor(0x000000);

g.drawString(String.valueOf(number),50,50,Graphics.TOP | Graphics.LEFT);

}

/**

* 線程任務(wù)動作

*/

public class NumberTimerTask extends TimerTask{

public void run(){

//數(shù)字增加

number ;

//重繪

repaint();

}

}

}

  

分享:使用Java編寫Palm OS程序的解決方案1
使用Java語言為 Palm OS編寫程序的領(lǐng)域還沒有完全統(tǒng)一,并且也有許多程度上的差異,目前,市面上有好幾種不同的可用的應(yīng)用程序接口,每種應(yīng)用程序接口都給出了一個(gè)到當(dāng)前的Palm OS應(yīng)用

來源:模板無憂//所屬分類:JSP教程/更新時(shí)間:2008-08-22
相關(guān)JSP教程