lock与shut的区别是什么?
主要的区别应该说是它们面向的对象不同。阻塞和唤醒是对于线程来说的,LockSupport的park/unpark更符合这个语义,以“线程”作为方法的参数, 语义更清晰,使用起来也更方便。
而wait/notify的实现使得“线程”的阻塞/唤醒对线程本身来说是被动的,要准确的控制哪个线程、什么时候阻塞/唤醒很困难, 要不随机唤醒一个线程(notify)要不唤醒所有的(notifyAll)。
先把API粘贴上来,该类据我所知为Lock()实现提供了基本操作,比如ReentrantLock的lock就是利用了LockSupport的相关方法来使线程阻塞或者唤醒的。