小白成长记——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
- 小白成长记——Android进阶之线程thread的两种实现
- 小白成长记——Android进阶之Json数据的获取与解析
- 小白成长记——Android进阶之打造通用的适配器
- 小白成长记——Android进阶之设计模式之单例模式
- 小白成长记——Android进阶之AsyncTask基础
- 小白成长记——Android进阶之初识Handler
- 小白成长记——Android进阶之布局优化
- 小白成长记——Android进阶之浅谈android6.0之后运行时权限问题的坑
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法!
- Android 线程 thread 两种实现方法
- Android 线程 thread 两种实现方法!
- 小白成长记——Android基础之Activity四种启动模式
- 小白成长记——Android基础之Android Studio开发常用快捷键
- 线程(Thread)同步的两种表现形式
- 1117. Eddington Number(25)
- pulltorefresh 上拉刷新 下拉加载
- HDU-2544-最短路
- hdu4497 GCD and LCM 容斥原理
- MapReduce再学习:资源管理框架YARN
- 小白成长记——Android进阶之线程thread的两种实现
- python3爬虫数据解析实战
- 【多媒体编解码】AAC
- 排序算法之堆排序
- HDU 1496 Equations(简单哈希)
- 如何利用Halcon中的快速傅里叶变换(FFT)
- 数据库系统原理(自考4、5、6、7)
- com.android.build.transform.api.TransformException
- Untiy 访问组件(二)