Java并发编程实践笔记之——加锁机制(Locking)
来源:互联网 发布:越南新娘淘宝 编辑:程序博客网 时间:2024/06/05 21:10
多个状态变量的一致性保持
- 当线程安全的不变性条件中涉及多个变量时,并且各个变量之间不是彼此独立,某个变量对其他变量的值产生约束。那当更新一个变量时,要在同一个原子操作中更新其他的变量
内置锁(Intrinsic Locks)
- Java提供了同步代码块(Synchronized Block)这种内置锁机制来支持原子性
- 每个Java对象都可以用作一个实现同步的锁,被称为内置锁或者监视锁
- 内置锁是一种互斥锁(mutexes ),这意味着最多只有一个线程能持有这种锁
- Synchronized 的使用可能过于极端,影响性能,比如使服务器的并发响应性降低
重入(Reentrancy)
- 内置锁是可重入的是指:当某个线程试图获得一个已经由它自己持有的锁是,这个请求可以成功
- 重入的实现方法是:为每个锁关联一个获取计数器和所有者线程
//如果内置锁不是可重入的,那这段代码将发生死锁public class Widget{ public synchronized voiddoSomething() { ... }}publicclass LoggingWidget extends Widget { public synchronized voiddoSomething() { System.out.println(toString() +": calling doSomething"); super.doSomething(); }}
0 0
- Java并发编程实践笔记之——加锁机制(Locking)
- 《Java Concurrency in Practice》之加锁机制(Locking)
- Java并发编程实践笔记之—不变性(Immutability)
- Java并发编程实践笔记之—可见性(Visibility)
- Java并发编程实践笔记之—线程
- 《Java并发编程实践》笔记6——并发性调优
- Java并发编程实践笔记之—并发容器(Concurrent Collections)
- java并发之加锁
- Java并发编程实践笔记之-并发简史
- java多线程、并发系列之 (synchronized)同步与加锁机制
- Java并发编程实践笔记之——活跃性和性能(Liveness and Performance)
- Java并发编程实践笔记之——用锁来保护状态(Guarding State with Locks)
- Java并发编程实践笔记之——原子性(Atomicity)
- Java并发编程实践笔记之—阻塞和中断方法(Blocking and Interruptible Methods)
- Java并发编程实践笔记之—同步容器类(Synchronized Collections)
- Java并发编程实践笔记之—安全发布(Safe Publication)
- Java并发编程实践笔记之—线程封闭(Thread Confinement)
- Java并发编程实践笔记之—发布和逸出(Publication and Escape)
- 与数据挖掘有关或有帮助的R包和函数的集合
- java
- jQuery 学习四(数据缓存)
- javascript 返回上一页面:onclick="javascript:history.back(-1);"
- hdu 1590 Bridging signals
- Java并发编程实践笔记之——加锁机制(Locking)
- (1)无废话JQuery之通用模板
- jQuery 学习五(插件机制)
- Objective - C基础: 第六天 - 1.ARC自动引用计数的基本认识
- ubuntu add default network(nat) to libvirt
- Java并发编程实践笔记之——原子性(Atomicity)
- jQuery 学习六(多库共存)
- 通过action和category隐式启动Activity(试验记录)
- 影响大数据未来的三个改变 数据安全、管理、及心态