J2ME中多线程代码实战

来源:互联网 发布:pca分析软件 编辑:程序博客网 时间:2024/06/06 09:11


实现多线程有两种方式:继承Thread类和实现Runnable接口

/**
 * @作者 Jcuckoo
 * @创建日期 2008-11-26
 * @版本 V 1.0
 * @采用继承Thread类实现多线程
 */

public class ThreadTestMIDlet extends MIDlet {
 private Display display;
 private TextBox tx;
 public ThreadTestMIDlet() {
  display=Display.getDisplay(this);
  tx=new TextBox("多线程测试","制作者:Jcuckoo./n运行结果:/n",500,0);
  Thread mt1=new MyThread("线程1");
  Thread mt2=new MyThread("线程2");
  Thread mt3=new MyThread("线程3");
  mt1.start();
  mt2.start();
  mt3.start();
 }
 protected void destroyApp(boolean arg0) {
 }
 protected void pauseApp() {
 }
 protected void startApp() throws MIDletStateChangeException {
  display.setCurrent(tx);
 }
 //类内部包含另外一个类--内部类
 public class MyThread extends Thread {
  private String threadName;
  public MyThread(String threadName){
   this.threadName=threadName;
  }
  public String getThreadName() {
   return threadName;
  }
  public synchronized void run() {
   tx.setString(tx.getString()+getThreadName()+"开始./n");
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   tx.setString(tx.getString()+getThreadName()+"结束./n");
  }
 }
}
————————————————————————————————————————————

/**
 * @作者 Jcuckoo
 * @创建日期 2008-11-26
 * @版本 V 1.0
 * @采用实现Runnable接口实现多线程
 */

public class RunnableTestMIDlet extends MIDlet {
 private Display display;
 private Form form;
 public RunnableTestMIDlet() {
  display=Display.getDisplay(this);
  form=new Form("Runnable测试");
  Thread mt1=new Thread(new MyRunnable());
  Thread mt2=new Thread(new MyRunnable());
  mt1.start();
  mt2.start();
 }
 protected void destroyApp(boolean arg0) {
 }
 protected void pauseApp() {
 }
 protected void startApp() throws MIDletStateChangeException {
  display.setCurrent(form);
 }
 public class MyRunnable implements Runnable {
  public void run() {
   System.out.println(System.currentTimeMillis()+"开始");
   form.append(new StringItem("",System.currentTimeMillis()+"开始"));
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   form.append(new StringItem("",System.currentTimeMillis()+"结束"));
   System.out.println(System.currentTimeMillis()+"结束");
  }
 }
}
原创粉丝点击