synchronized机制ReentrantLock 都类似于mutex,一个线程如果获取了一次mutex,可以再次获取第二次mutex,而不被阻塞。
ReentrantLock提供了更富在的操作,包括可以被中断(lockInterruptibly函数)。
sleep()、yield()、wait()
sleep()、yield()不会释放lock wait()会释放lock