wait和sleep方法都会让出cpu执行权,但是不同的是如果当前线程持有了共享对象的监视器(锁),sleep方法不会释放锁,wait方法会释放锁
synchronized方式,Lock锁和分布式锁
用Semaphore