JAVA中线程是重要的内容之一,线程的内容其实就是能够同时完成不一样的内容这就叫做多线程,线程从出生到死亡中间要经历多个历程,就像人生一样!
简单的线程我就不多细讲,大致都一样,我来分享一下我自己学过的线程池!
为什么要用线程池,当我创建一个线程的时候,每次创建一个新的线程的时候就会占用系统的资源,为了避免太多的内存资源,我们不会频繁的创建新的线程,而是利用一个容器,将创建的线程放进这个容器中养着,当我们需要使用的时候,我们就可以使用这个容器中的线程,就算使用完毕之后不然线程结束,而是让这个线程重现回到那个容器中,一般我们容器都可以用集合来存放ArrayList,利用remove将线程拿出来用,用完之后放回去!
我们可以用(Executors)工厂的一种方式,里面有一个方法(newFixedThreadPool(int a))可以自己定义需要的线程的容器有多大,需要存放几个线程,还要用到(ExecutorService)这个管理的接口,然后将线程提交(submit)提交,但是这个方法它又返回值,返回的就是Future接收,如果我们实现的是Runnable这个接口的返回就不用泛型,如果提交的线程想实现的是(Callable)那么接收返回的Future<类型> 就需要根据所实现接口的方法的返回值了!这个就需要特别的注意了!打印出来就需要(get())方法,最后就可以打印了!