A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

花落村下

中级黑马

  • 黑马币:317

  • 帖子:132

  • 精华:0

© 花落村下 中级黑马   /  2017-12-4 16:22  /  875 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程的实现方式
:继承Thread类
1.定义一个类继承Thread。
2.重写run方法。
3.创建子类对象,就是创建线程对象。
4.调用start方法,开启线程并让线程执行,同时还会告诉jvm去调用run        方法
注意事项:同一个对象,不能开启多次线程,否则会抛出异常
:实现Runnable接口
创建线程的步骤。
1、定义类实现Runnable接口。
2、重写接口中的run方法。。
3、创建Thread类的对象
4、将Runnable接口的子类对象作为参数传递给Thread类的构造函数。
5、调用Thread类的start方法开启线程。
:定义一个类,实现Callable接口,重写call()方法
1)接口 Callable<V>
类型参数:V - call 方法的结果类型
返回:计算结果,此结果类型与你Callable泛型一致
抛出:如果无法计算结果,则抛出一个异常
2)类 FutureTask<V>
类型参数:V - 此 FutureTask 的 get 方法所返回的结果类型。
可使用 FutureTask 包装 Callable Runnable 对象。因为 FutureTask 实现了 Runnable,所以可将 FutureTask 提交给 Executor 执行
构造方法:
a)public FutureTask(Callable<V> callable):创建一个 FutureTask,一旦运行就执行给定的 Callable。
参数:callable - 可调用的任务。
抛出:NullPointerException - 如果 callable 为 null。
b)public FutureTask(Runnable runnable,V result):创建一个 FutureTask,一旦运行就执行给定的 Runnable,并安排成功完成时 get 返回给定的结果 。
参数:runnable - 可运行的任务。
result - 成功完成时要返回的结果。如果不需要特定的结果,则考虑
使用下列形式的构造:
Future<?> f = new FutureTask<Object>(runnable, null)
抛出:NullPointerException - 如果 runnable 为 null。
成员方法:
public V get():从接口Future复制的描述,如有必要,等待计算完成,然后获取其结果。
指定者:接口 Future<V> 中的 get
返回:计算的结果
抛出: CancellationException - 如果计算被取消
InterruptedException - 如果当前的线程在等待时被中断
ExecutionException - 如果计算抛出异常
您需要登录后才可以回帖 登录 | 加入黑马