刷面试题的时候遇到的值得记录的知识,想要深入了解的话建议再去CSDN巴拉巴拉,小生这篇文章仅供参考。
1.通过继承Thread类
由于java中是单继承的方式,继承了Thread之后不能再去继承其他的类所以java提供了实现Runnable接口的方式。
2.通过实现Runnable接口
实现接口的形式并无像继承一样的限制,所以在日常开发中更推荐使用。
3.实现Callable接口和Future接口
也可通过线程池的方式来创建线程。
4.newFixedThreadPool(固定大小线程池)
线程池的大小固定,若有新任务提交,当线程池中有空闲线程时立即执行(并发);若没有空闲线程,则任务进入等待队列,直到有线程可用。
5.newCachedThreaPoll(可缓存线程池)
线程数量不固定,如果有空闲的线程会被回收复用,如果没有空闲线程则创建新线程。
6.newSingleThreadExecutor(单线程线程池)
只有一个线程执行任务,保证所有任务按照指定顺序依次执行(FIFO,LIFO,优先级)。
7.newScheduledThreadPoll(定时任务线程池)
用于执行定时任务或周期性任务。