首页 arrow 开发技术 arrow 新手上路 arrow J2ME的Thread使用
J2ME的Thread使用
Author Author: 一滴蔚蓝色 | Date Date: 2007-08-26 | View Count View: 2084 | Section & Category 开发技术 - 新手上路 | Digg Digg: 0

Thread 可以让我们的程序看起来同时间作一个以上的事情,范例如下:

//MyThread.java
 
public class MyThread extends Thread {
    boolean exit = false;
    char printchar;
    public MyThread(char c) {
        printchar = c;
    }
 
    public void run() {
        while (!exit) {
            System.out.print(printchar);
            System.out.flush();
            try {
                Thread.sleep(1000);
            } catch (Exception e) {}
        }
    }
}
 
 
//ThreadTest.java
 
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
 
public class ThreadTest extends MIDlet {
    MyThread mt1;
    MyThread mt2;
    public ThreadTest() {
    }
 
    public void startApp() {
        mt1 = new MyThread('A');
        mt1.start();
        mt2 = new MyThread('B');
        mt2.start();
    }
 
    public void pauseApp() {
    }
 
    public void destroyApp(boolean unconditional) {
        mt1.exit = true;
        mt1 = null;
        mt2.exit = true;
        mt2 = null;
    }
}

执行结果:
ABBAABBAABBAABE………….

每个人的结果都会不同,A、B 印出的数目则看何时关闭MIDlet 而定上述范例中,有几个重点必须注意:

1. Thread 的建立有两种方法,第一是直接继承Thread 类别,并实作其run()方法,这是上述范例所使用的方式。第二种是实作Runnable 接口,并实作其run()方法。这两种方法请参阅一般讲解Java 程序语言的书,都会有详尽的说明。一般建议使用第二种方法,但是第一种方法比较简单。

2. 启动Thread 时,请教用其start()方法。切莫因为实作run()方法就直接叫用run(),否则无法达到多绪执行的效果。

3. 要结束一个Thread 的执行,请利用自己定义的旗标(flag)。当外头设定此旗标时,Thread 自动离开run()方法,此时就会造成Thread 结束。虽然在J2SE之中的Thread 类别有stop()方法可以结束Thread 的执行,但是这个方法也已经被列为不建议使用(deprecate)。

其它Thread 的方法,请参阅一般讲解Java 程序语言的书,不过CLDC 里头的Thread 功能没有J2SE 那么多。


更多阅读:

最近更新 ( 2008-11-29 )
 

尚无评论发表

我要发表评论

登录菜单

最新文章

订阅本站

RSS 0.91 RSS 1.0 RSS 2.0 ATOM 0.3 OPML