小白成长记——Android进阶之线程thread的两种实现

来源:互联网 发布:北京工业大学 网络 编辑:程序博客网 时间:2024/05/17 06:17

Android有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口。

创建线程:

1.继承Thread类:

public class ThreadActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.thread);        MyThread thread = new MyThread();        thread.start();    }    public class MyThread extends Thread {        @Override        public void run() {            System.out.print("thread run");        }    }}

2.实现Runnable接口:

public class ThreadActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.thread);        MyRunnable runnable = new MyRunnable();        Thread thread = new Thread(runnable);        thread.start();    }    public class MyRunnable implements Runnable {        @Override        public void run() {            System.out.print("runnable run");        }    }}

可以看出,实现Runnable接口的方法最终也是需要通过Thread类的start方法来开启线程。

3.简单实现:

//无参构造函数,直接重写run方法创建Thread对象并调用start方法        new Thread() {            @Override            public void run() {                System.out.print("Thread run");            }        }.start();        //带Runnable参数的构造函数,创建Thread对象并调用start方法        new Thread(new Runnable() {            @Override            public void run() {                System.out.print("Runnable run");            }        }).start();    }
可以直接写在Oncreate方法中

事实上,查看源码我们可以看到Thread类本身就实现了Runnable接口

public class Thread implements Runnable 


两种方式对比:

理论上只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是Java中一个类只能继承一个父类,这是这种方式的局限性,后者只需要实现一个接口而已,Java中可以实现多个接口。



阅读全文
1 0