----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
在看张老师交通灯管理系统和银行业务调度系统视频的时候,有两个方法让我印象特别深刻。
一个是Executors.newSingleThreadExecutor(),返回的是一个只有单个线程的线程池,这是一种新的创建线程的方式,也是我接触的第一次新的创建方法。创建好线程后,再调用execute方法,实现Runnable接口,就完成了新线程的创建。
另一个方法是Executors.newScheduledThreadPool(int poolsize),张老师戏称它为定时器,这个方法返回的是具有指定线程数的线程池,可以在给定的延迟后运行命令或者是定期的执行运行命令。常用的是接着调用scheduleAtFixedRate,这样就可以实现定时、定期运行要指定的命令了。
在使用这两个方法时,我还了解到线程池的概念。现在就是把要任务交给线程池去处理。当我们需要使用线程对象的时候,不需要每次都重新创建线程,只需要从创建好的线程池中取出一个空闲线程来使用就成了。当线程运行完毕,不会像以前那样消亡,而是会回到线程池中。
从其他方还了解到使用线程池的两大好处。第一是可以提高性能,因为减少了创建线程的开销。第二是可以方便控制线程的数量,通过限制最大的线程数量,来防止系统的负荷过高。
这里还需要去了解下一般线程池的最大值可以达到多少。