lock與shut的區(qū)別是什么?
主要的區(qū)別應(yīng)該說是它們面向的對象不同。阻塞和喚醒是對于線程來說的,LockSupport的park/unpark更符合這個語義,以“線程”作為方法的參數(shù), 語義更清晰,使用起來也更方便。
而wait/notify的實現(xiàn)使得“線程”的阻塞/喚醒對線程本身來說是被動的,要準(zhǔn)確的控制哪個線程、什么時候阻塞/喚醒很困難, 要不隨機(jī)喚醒一個線程(notify)要不喚醒所有的(notifyAll)。
先把API粘貼上來,該類據(jù)我所知為Lock()實現(xiàn)提供了基本操作,比如ReentrantLock的lock就是利用了LockSupport的相關(guān)方法來使線程阻塞或者喚醒的。