synchronized的用法
synchronized是锁,可以用来锁静态方法,也可以用来锁非静态方法,还可以用来锁静态代码块。
在JDK6之后,synchronized已经被优化的很好用了,
synchronized在JDK中有demo,它的底层原理是,每个java对象中都有monitor,其中monitorenter,是记录锁开始的代码块,monitorexit,是记录锁结束的代码块。当计数器为0,表示锁可以获取,当计数器大于1时,表示锁被占用,其他的线程调用这块代码,需要阻塞等候
synchronized是锁,可以用来锁静态方法,也可以用来锁非静态方法,还可以用来锁静态代码块。
在JDK6之后,synchronized已经被优化的很好用了,
synchronized在JDK中有demo,它的底层原理是,每个java对象中都有monitor,其中monitorenter,是记录锁开始的代码块,monitorexit,是记录锁结束的代码块。当计数器为0,表示锁可以获取,当计数器大于1时,表示锁被占用,其他的线程调用这块代码,需要阻塞等候