#### 1.Thread、Runnable、Callable、Futrue类关系与区别
#### 2.JDK中默认提供了哪些线程池,有何区别
#### 3.线程同步有几种方式,分别阐述在项目中的用法
#### 4.在理解默认线程池的前提下,自己实现线程池
#### 5.volatile关键字
Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。
**synchronized**
同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用
synchronized 修饰的方法 或者 代码块。
**volatile**
用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。volatile很容易被误用,用来进行原子性操作。