多线程-创建线程的扩展方式

创建线程的扩展方式

Callable接口

Callable接口,需重写call方法

与Runnable方式对比
  • call()可以有返回值,更灵活
  • call()可以使用throws的方式处理异常,更灵活
  • Callable使用了泛型参数,可以具体指明call()的返回值类型,更灵活

使用线程池

使用并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程会大大降低系统效率,因为频繁创建线程和销毁线程需要时间.

所以我们提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中.可以避免频繁创建销毁,实现重复利用.

此方法的好处
  • 提高了 程序执行效率(因为线程已经提前创建好了)
  • 提高了资源的复用率(因为执行完的线程并未销毁,而是可以继续执行其他任务)
  • 可以设置相关的参数,对线程池中的线程进行管理