1、wait与sleep的区别
   wait:属于Object类的方法,wait时其它线程可以访问锁定对象,相当于释放了锁。
   sleep:属于Thread类的方法,sleep时其它线程不可以访问锁定对象。

2、线程与进程的概念
   线程:拥有多个执行路径
   进程:是一个静态的概念,如一个EXE

3、创建和启动线程的方式
   创建的方法有两种:一种是继承自Thread类,覆盖public void run()方法;第二种是实现Runnable接口类,实现public void run()方法。推荐使用第二种方法。
   启动线程调用start()方法,里面执行的是run()方法的实现体。

4、sleep
   睡眠指定时间毫秒数,sleep时其它线程不可以访问锁定对象。

5、join
   等待此被调用线程执行结束后,调用线程再往下执行。

6、yield
   当前正在执行的线程对象暂时停顿,释放CPU时间片给调用线程。

7、synchronized
   锁定当前方法或者代码块,则同一时刻只允许一个线程执行此方法或者代码块。开始执行时获取锁,执行完成后释放锁,执行期间,其它线程无法访问锁定对象。

8、wait
   一直处于等待状态,只到调用notify方法或者notifyAll方法时,才能被唤醒。

9、notify/notifyAll
   唤醒一个或者所有等待的线程。

10、interrupt
   打断当前执行的线程,会触发InterruptedException,并执行完异常处理代码。

11、stop
   与interrupt相比较,stop会直接打断当前执行的线程,不会触发InterruptedException异常,因此也不会执行异常处理代码。