多线程-创建线程的扩展方式
创建线程的扩展方式
Callable接口
Callable接口,需重写call方法
与Runnable方式对比
- call()可以有返回值,更灵活
- call()可以使用throws的方式处理异常,更灵活
- Callable使用了泛型参数,可以具体指明call()的返回值类型,更灵活
使用线程池
使用并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程会大大降低系统效率,因为频繁创建线程和销毁线程需要时间.
所以我们提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中.可以避免频繁创建销毁,实现重复利用.
此方法的好处
- 提高了 程序执行效率(因为线程已经提前创建好了)
- 提高了资源的复用率(因为执行完的线程并未销毁,而是可以继续执行其他任务)
- 可以设置相关的参数,对线程池中的线程进行管理