请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

monitor的本质是什么呢?是一个java对象吗?

老师您好,关于monitor对象究竟是什么呢,您说它有入口集,等待集这些数据结构,它难道是一个实实在在的java对象吗,然后又说每一个java对象都可以作为一个monitor,但是这句话有点问题吧首先java对象不一定有入口集等待集这种数据结构,所以我觉得不能把java对象和monitor对象画等号,我又查阅到了一些资料说是在锁状态时java对象头中的mark word存储了指向锁记录的指针,那么这个指针指向的是monitor对象吗,这是一个java对象吗还是由jvm底层实现的某种东西呢,它怎么保证等待集和入口集等和wait/notify方法配合的呢,这里面的细节感觉好复杂。。。,希望老师可以给出进一步解答。

正在回答

1回答

入口集等数据结构不是monitor对象里的,指针指向的是monitor对象,只是指向地址,至于保证等待集和入口集等和wait/notify方法配合,是JVM实现的,而不是monitor对象自身的能力。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕函数7469937 #1
    谢谢老师的回答!所以老师monitor对象应该不是一个java对象吧,是不是更底层操作系统层面的信号量呢,类似于操作系统原理里面的pv操作?我看到网上有这样的说法,是这样吗,还有这一块的知识有推荐的阅读资料吗,谢谢老师?
    回复 有任何疑惑可以回复我~ 2020-06-01 00:03:37
  • 悟空 回复 提问者 慕函数7469937 #2
    你看看这些资料:
    https://stackoverflow.com/questions/3362303/whats-a-monitor-in-java
    https://howtodoinjava.com/java/multi-threading/multithreading-difference-between-lock-and-monitor/
    http://journals.ecs.soton.ac.uk/java/tutorial/java/threads/monitors.html
    https://www.cmi.ac.in/~madhavan/courses/pl2009/lecturenotes/lecture-notes/node64.html
    回复 有任何疑惑可以回复我~ 2020-06-01 10:17:55
  • 提问者 慕函数7469937 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-06-01 11:49:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信