安卓synchronized(this)的理解问题

安卓synchronized(this)底层的原理是什么,加上它安卓是怎么实现同步执行的?

参考:http://www.cnblogs.com/oracleDBA/archive/2010/05/22/1741642.html

这是用对象监视器来实现互斥访问的,底层是机器指令实现的。

底层应该是Linux内核中的原子操作实现的

synchronized(this)

这个也是java多线程的同步控制方式
使用synchronized可以去锁定一个对象。
java的每一个对象都有一个锁旗标的位,使用synchronized就可以锁定这个对象的这个位
底层原理是在JVM层面实现的哦,还没有到这个Linux内核中
因为如果这个sunchronized作用的块里面如果有异常的时候,这个对象的锁旗标位置就被释放了

说点题外话:
锁的本质都是在锁CPU,如果CPU不切换那么就是锁住了。如果CPU切换了一切都是白搭。
原理就是给CPU发一个禁止中断的信号
其实这个就是信号量的作用了。

至于这个synchronized它还是JVM层面的,并没有深入到给CPU发禁止中断信号的程度
你也可以使用这个 ReentarctLock来进行锁定

android的synchronized并不是java实现的。。。。楼主你被误导了。你看看编译后的字节码其实使用c层的monitor-enter、monitor-exit实现的,在c层有对应的lock_word.h类用于存储thinlock、fatLock等,可以记载加锁次数和所属的thread id.楼上的都没看大前提吧,这是问的android的synchronized实现