黑马程序员技术交流社区

标题: 请教问题 [打印本页]

作者: 看海的管家    时间: 2015-10-8 09:17
标题: 请教问题
实现多线程的两种方法?
作者: 海狮    时间: 2015-10-8 13:59
安卓中,实现多线程有两种方法,一种是扩展Thread类,一种是实现Runnable接口(一般常用Runnable接口).然后通过Handler机制与主线程通信
第一种,thread类
可以通过继承thread类,复写run()方法,或者直接扩展,也就把run()方法写到线程里
1:
package org.thread.demo;
class MyThread extends Thread{
private String name;
public MyThread(String name) {
super();
this.name = name;
}
public void run(){
for(int i=0;i<10;i++){
System.out.println("线程开始:"+this.name+",i="+i);
}
}
}

package org.thread.demo;
public class ThreadDemo01 {
public static void main(String[] args) {
MyThread mt1=new MyThread("线程a");
MyThread mt2=new MyThread("线程b");
mt1.run();
mt2.run();
}
}
2:
Thread thread=new Thread(new Runnable()  
        {  
            @Override  
            public void run()  
            {  
                Log.e("1111", "111111111");  
                // TODO Auto-generated method stub  
            }  
        });  
        thread.start();  
    }
第二种方法,Runnable接口
class MyThread implements Runnable{
private String name;
public MyThread(String name) {
this.name = name;
}
public void run(){
for(int i=0;i<100;i++){
System.out.println("线程开始:"+this.name+",i="+i);
}
}
}



需要注意的是,Thread类是Runnable的子类,同时两者有一定区别,开发中一般优先使用Runnable

作者: LLLLL    时间: 2015-10-10 16:45
Java对多线程的支持是非常强大的,他屏蔽掉了许多的技术细节,让我们可以轻松的开发多线程的应用程序。
  Java里面实现多线程,有2个方法
1 继承 Thread类
  class MyThread extends Thread {
  public void run() {
  // 这里写上线程的内容
  }
  public static void main(String[] args) {
  // 使用这个方法启动一个线程
  new MyThread().start();
  }
  }
2 实现 Runnable接口
  class MyThread implements Runnable{
  public void run() {
  // 这里写上线程的内容
  }
  public static void main(String[] args) {
  // 使用这个方法启动一个线程
  new Thread(new MyThread()).start();
  }
  }
  一般鼓励使用第二种方法,因为Java里面只允许单一继承,但允许实现多个接口。第二个方法更加灵活。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2