每天糊弄自己一分钟
Thread、Runnable、Callable之间的区别
Thread
- 类,通过extends继承
- 重写run()方法实现业务代码
- 单继承的局限
- 无法返回值
- 调用自身的start()方法开启线程
- 无法提交给线程池执行
Runnable
- 接口,通过implements实现
- 重写run()方法实现业务代码
- 实现类可以继承其他类及实现其他接口
- 无返回值
- 需要提交Thread类或线程池来执行
Callable
- 接口,通过implements实现
- 重写call()方法实现业务代码
- 实现类可以继承其他类及实现其他接口
- 有泛型的返回值
- 需要构建Runnable的实现类FutureTask,并提交Thread类或线程池来执行
- 在调用FutureTask的get()方法获取返回值时会阻塞
更多推荐
每天糊弄自己一分钟
发布评论