黑马程序员技术交流社区
标题:
创建线程的方法
[打印本页]
作者:
等你的季节-夏天
时间:
2015-7-6 10:55
标题:
创建线程的方法
创建线程的方法有3种:
1. 自定义类继承Thread类, 重写run()方法, 创建子类对象, 调用start()方法启动线程. 这种方法的缺点是占用了继承
2. 自定义类实现Runnable接口, 重写run()方法, 创建实现类对象, 然后创建多个线程的Thread对象, 创建的时候将实现类对象作为构造器参数传入, 然后使用Thread对象调用start()方法启动线程, 这种方法的好处是不占用继承
3. 使用线程池的方法. 自定义类实现Callable接口, 重写call()方法, 注意Callable接口有泛型, call()方法要有泛型类的返回值. 然后创建线程池对象, 使用Executors类的3种创建线程池的方法都可以, 一般使用newFixedThreadPool, 返回一个ExecutorService类的线程池对象, 用该对象调用submit方法, 将Callable实现类对象传入, 创建几个线程就创建几个实现类对象并执行几个submit, submit会返回Future类的线程运行结果. 这种方法创建的线程只在最初创建一次, 执行完毕后回到线程池中等待, 除非调用线程池的shutdown方法关闭线程池才会销毁, 节省资源且效率高
作者:
wing-SF
时间:
2015-7-6 11:19
开源的视频里,似乎只有前俩种吧,第三种在开发很常用么,求解答回复
作者:
耀阳圣尊
时间:
2015-7-6 11:51
wing-SF 发表于 2015-7-6 11:19
开源的视频里,似乎只有前俩种吧,第三种在开发很常用么,求解答回复
很少用,开发经常用的就是Runnable接口。这样拓展性更强
作者:
dajiaoya
时间:
2015-7-6 12:43
分享快乐 赞一个
作者:
王文辉
时间:
2015-7-6 16:15
第三种以前还真不知道,学习了。最常用的是实现Runnable接口的方式
作者:
palysh
时间:
2015-7-6 21:58
只知道前两种,第三种没见过。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2