(手机横屏看源码更方便)
引子
大家知道,我最近在招人,今天遇到个同学,他的源码看过一些,然后我就开始了AQS连环问。
我:说说AQS的大致流程?
他:AQS包含一个状态变量,一个同步队列……balabala……互斥锁balabala,共享锁balabala……
我:AQS中除了同步队列,还有什么队列?
他:还有个Condition,Condition中有个条件队列……
我:条件队列和同步队列有什么区别?
他:条件队列balabala,然后调用LockSupport.park()进入休眠,等待被唤醒,……,balabala
咦,这时我灵感突发:LockSupport.park()和Thread.sleep()有什么区别?
他:Thread.sleep()不会释放锁资源,……,balabala
我:LockSupport.park()会释放锁资源吗?
他:会吧。(估计和Object.wait()搞混淆了)
我:会吗?会吗?会吗?
他(羞涩地低下了头):彤哥,