多线程的几种实现方式
来源:互联网 发布:性格被动 知乎 编辑:程序博客网 时间:2024/06/04 17:55
Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。
2、实现Runnable接口方式实现多线程如果自己的类已经extends另一个类,就无法直接extends Thread,此时,必须实现一个Runnable接口
3、使用ExecutorService、Callable、Future实现有返回结果的多线程ExecutorService、Callable、Future这个对象实际上都是属于Executor框架中的功能类。想要详细了解Executor框架的可以访问http://www.javaeye.com/topic/366591 ,这里面对该框架做了很详细的解释。返回结果的线程是在JDK1.5中引入的新特征,确实很实用,有了这种特征我就不需要再为了得到返回值而大费周折了,而且即便实现了也可能漏洞百出。可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了,再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了。下面提供了一个完整的有返回结果的多线程测试例子,在JDK1.5下验证过没问题可以直接使用
阅读全文
0 0
- iOS 多线程的几种实现方式
- 8.19 多线程的几种实现方式
- 多线程的几种实现方式
- 多线程的几种实现方式
- 实现多线程 的几种方式
- 多线程的几种实现方式
- 多线程的几种实现方式
- iOS中多线程的几种实现方式
- Java多线程:Producer-Consumer不同的几种实现方式
- 多线程-实现多线程的几种方案
- Linux多线程同步的几种方式
- Linux多线程同步的几种方式
- 几种多线程的操作方式
- Linux多线程同步的几种方式
- ios多线程的几种创建方式
- ios多线程的几种创建方式
- ios多线程的几种创建方式
- 多线程创建的几种方式
- 多周期CPU实验
- 关于java多线程的同步锁
- 排序算法之直接插入排序与希尔排序
- 1319: 同构词
- POJ 1836 Alignment 笔记
- 多线程的几种实现方式
- 多线程连接数据库查询数据
- 3668: [Noi2014]起床困难综合症
- 35 个 Java 代码性能优化总结
- Linux 错误:delimited by end-of-file (wanted `EOF')
- hdu魔板 康拓展开
- JAVA多线程实现的三种方式
- 关于多线程Callable和Future
- 多线程下的Socket网络通信