从视频3:40s开始,老师的原话是这样:
有两个队列,waitSet(等待池),EntryList(锁池),用来保存objWaiter的对象列表,每个对象锁的线程都会被封装成objWaiter来保存到里面
owner:指向持有objMonitor对象的线程,当多个线程同时访问同一段同步代码的时候,首先会进入到entryList,当线程获取到对象的monitor后,就进入到Obj区域,并把monitor中的owner变量设置为当前线程,同时monitor中的计数器count+1,若线程调用wait(),就释放当前持有的monitor,owner被恢复成null,count-1,然后该线程即是objwaiter实例就会进入到waitSet集合中等待被唤醒;若当前线程执行完毕,它也将释放monitor锁,并复位对应变量的值以便其他线程进入获取monitor锁
问题是:
1.这个objWaiter和Obj区域具体是指什么,之前好像没有讲过吧?
2.是不是可以理解为平时抢的对象锁就是抢monitor,有点类似请求头一样的东西么?