自旋锁和JVM对锁的优化,有哪些巧妙之处?