1. 原子操作 (Atomic Operations)编写多线程代码最重要的一点是:对共享数据的访问要加锁。Shared data is any data which more than one thread can access.原子操作(Atomic Operations)满足只有一个线程可以访...
分类:
移动开发 时间:
2015-04-10 23:44:29
阅读次数:
251
lock_guard:更加灵活的锁管理类模板,构造时是否加锁是可选的,在对象析构时如果持有锁会自动释放锁,所有权可以转移。对象生命期内允许手动加锁和释放锁。scope_lock:严格基于作用域(scope-based)的锁管理类模板,构造时是否加锁是可选的(不加锁时假定当前线程已经获得锁的所有权),...
分类:
其他好文 时间:
2015-04-09 16:54:29
阅读次数:
4302
共享变量可见性实现的原理 java 语言层面支持的可见性实现方式: synchronized volatile1、 synchronized 的两条规定: 1 线程解锁前,必须把共享变量的最新值刷新到主内存中。 2 线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需...
分类:
编程语言 时间:
2015-04-09 00:43:28
阅读次数:
153
原文:mysql乐观锁总结和实践上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这...
分类:
数据库 时间:
2015-04-08 00:48:33
阅读次数:
205
一、互斥锁简介POSIX线程同步方法有:POSIX信号量、互斥锁和条件变量。互斥锁可以用于保护关键代码段,以确保其独占式的访问。当进去关键代码段时,我们需要获得互斥锁并将其加锁,等价于二进制信号量的P操作,当离开关键代码段时,我们需要对其解锁,等价于二进制信号量中的V操作。互斥锁基础API:互斥锁属...
分类:
其他好文 时间:
2015-04-08 00:48:08
阅读次数:
181
虚拟机层面,
不支持并发:对classloader加锁,ObjectLocker ol(lockObject, THREAD, DoObjectLock);
支持并发:对systemdictionary加锁,MutexLocker mu(SystemDictionary_lock, THREAD);...
分类:
其他好文 时间:
2015-04-06 09:00:48
阅读次数:
209
synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”,类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同时访问jvm中该类的...
分类:
编程语言 时间:
2015-04-06 08:58:51
阅读次数:
157
线程同步
Java语言的优点之一就是他在语言级别上对多线程的支持。这些支持多集中在于同步(synchronization):多线程之间的协作活动和数据访问。Java所使用的支持同步的机制是监控器(monitor)。本章描述这些监控器以及他们如何被JVM使用。并且从JVM指令集描述监控器的加锁和解锁。
监控器(Monitors)
Java监控器支持两种类型的线程同步:互...
分类:
其他好文 时间:
2015-04-04 09:17:33
阅读次数:
197
共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其...
分类:
其他好文 时间:
2015-04-03 09:11:47
阅读次数:
121
package test.thread;
public class DeadLockTest extends Thread{
private Object o;
public void setO(Object o){
this.o=o;
}
public void run(){
synchronized(this){
Sy...
分类:
编程语言 时间:
2015-04-02 22:38:37
阅读次数:
304