java里为什么有了Thread还要设置一个Runnable?
2016-07-21 22:28
666 查看
我学习多线程疑惑,为什么会有这种代码出现:
不是有个更简便的方法吗?
虽然很容易知道Runnable是个接口,而Thread是Runnable的一个具体实现。但是既然concurrent包中只有Thread一个类实现,那些Runnable这个接口到底有什么用?
答案就是用户可能会使用到多类继承,但是这在java中是禁止,只能用interface实现。比如我想设计一个任务队列,然后这个任务可以随时开启一个线程运行。
public static void main(String[] args) { Thread t = new Thread(new Runnable() { public void run() { System.out.println("this is a runnable"); } } ); t.start(); }
不是有个更简便的方法吗?
Thread t = new Thread() { public void run() { System.out.println("this is a thread"); } }; t.start();
虽然很容易知道Runnable是个接口,而Thread是Runnable的一个具体实现。但是既然concurrent包中只有Thread一个类实现,那些Runnable这个接口到底有什么用?
答案就是用户可能会使用到多类继承,但是这在java中是禁止,只能用interface实现。比如我想设计一个任务队列,然后这个任务可以随时开启一个线程运行。
class TaskQueue <T> extends LinkedList<T> implements Runnable { @Override public void run() { //... } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Python3写爬虫(四)多线程实现数据爬取
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序