extends Thread 与 implements Runnable 的区别 创建多线程的比较
2016-01-26 19:03
441 查看
使用实现Runnable接口方式创建线程可以共享同一个目标对象,实现了多个相同线程处理同一份资源。
采用继承Thread类方式:
(1)优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。
(2)缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。
采用实现Runnable接口方式:
(1)优点:线程类只是实现了Runable接口,还可以继承其他的类。在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。
(2)缺点:编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。
采用继承Thread类方式:
(1)优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。
(2)缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。
采用实现Runnable接口方式:
(1)优点:线程类只是实现了Runable接口,还可以继承其他的类。在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。
(2)缺点:编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。
相关文章推荐
- 中介者模式
- Linux进程间通信—创建守护进程
- C++编写Windows服务
- Linux多线程服务端编程:使用muduo C++网络库
- SD初始化过程以及Cmd解析
- Fragment事务提交的方式
- JavaSE入门学习10:Java修饰符
- Linux多线程服务端编程:使用muduo C++网络库
- SDIO驱动的命令从何玩起?
- MR-2.输入格式(InputFormat)基本介绍
- 操作注册表的API函数介绍(RegCreateKeyEx:该函数用来创建注册表键,如果该键已经存在,则打开它)
- android多线程断点续传下载
- Codeforces Round #326 (Div. 2) E. Duff in the Army(LCA+倍增法)
- 关于SQL语句的使用心得
- linux下查看路由表、默认路由器
- 数据结构---无重复元素链表的实现
- JavaScript基础
- linux命令(2):df 磁盘占用
- Android的底层库libutils介绍
- 使用lua代码创建文件夹,解压zip文件到指定目录(亲测可用)