Java内置锁的原理(一)
发布时间
阅读量:
阅读量
引言:线程安全问题
什么是在线多态编程中可能出现的问题?在Java面向对齐编程模型下,在多个独立执行的任务(称为"线程")同时操作同一个对象时(即所谓的"并发访问"),如果不管操作系统如何分配这些任务执行的顺序(即所谓的"调度方式"),该对象都能保持一致的行为模式,则我们称对该对象的操作为"线性时间的安全行为"(即所谓的"原子操作")。反之,在这种情况下,则认为该操作不具备这种特性。
本文旨在涵盖以下关键问题:(1)synchronize机制如何实现线程安全性;(2)synchronized加锁的具体操作流程;(3)lock information存储在Object对象中的具体位置;(4)深入解析lock升级的工作原理;等等。
涉及synchronized方法的具体应用场景及其与ReentrantLock的区别何在将在下次介绍Lock博客中的相关内容
Java内置锁的核心原理
Java内置的锁是一种排他的(专有的)锁。当线程A持有该对象的一个锁时,若线程B也试图获取该对象的内置锁,则线程B需等待或阻塞。
Java中每个对象均可作为内建锁使用;当线程进入同步代码块时能够自动生成锁定机制,并在脱离该代码块时自动释放锁定机制。
1. synchronized关键字
synchronize关键字的使用方式有三种:
1.修饰一个普通方法
全部评论 (0)
还没有任何评论哟~
