- 可重入性---一个线程获得某个对象锁以后要是想执行需要同样锁的代码时,可直接执行。synchronized具有可重入性特点。可重入性通过记录锁的持有线程数量来实现,当执行synchronized保护的操作时先判断对象锁是否被线程所得,若是再判断锁获得线程是否当前对象,若是则增加持有数量,若不是则进入阻塞队列。当线程释放锁时持有数量减小,等持有数量为0时才释放整个锁。
- 内存可见性--synchronized能够实现内存可见性。在每次获得所之前获取内存中的值,在释放锁之前将最新结果刷新到内存中,使其他线程工作内存中的值失效。
- 原子性--synchronized通过某一时间对同一对象的操作只能由单个线程来完成的排他性机制保证原子性。
- 有序性--synchronized保护的代码将会同一时间只能由单个线程操作相当于单线程,这种情况下能够保证代码有序性
理解Synchronized(4)
最新推荐文章于 2024-08-23 10:01:37 发布