每个对象在被Syncronized修饰时,对象会和操作系统底层的monitor对象关联。如图所示:对象中的markword中会有一个指针指到monitor,一个线程进来之后,判断monitor中的owner是否已经被其他线程占用,如没被占用,则会owner就会属于Thread2,若被占用,线程就会进入到entrylist,当Thread2运行完临界区代码的时候,会随机唤醒entrylist中的线程。
顺带说一句当在运行 wait 方法时,线程会进入到waitset里等待。
每个对象在被Syncronized修饰时,对象会和操作系统底层的monitor对象关联。如图所示:对象中的markword中会有一个指针指到monitor,一个线程进来之后,判断monitor中的owner是否已经被其他线程占用,如没被占用,则会owner就会属于Thread2,若被占用,线程就会进入到entrylist,当Thread2运行完临界区代码的时候,会随机唤醒entrylist中的线程。
顺带说一句当在运行 wait 方法时,线程会进入到waitset里等待。
Liam
这世界很美。
文章评论