Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select for update/lock in share mode 对事务并发性影响 Mysql加锁过程详解(5 ...
分类:
数据库 时间:
2017-11-12 14:09:26
阅读次数:
237
ConcurrentHashMap采用了分段加锁的方式看看get操作hashTable和ConcurrenHashMap的区别 public synchronized V get(Object key) { Entry tab[] = table; int hash = hash(key); int ...
分类:
其他好文 时间:
2017-11-10 01:42:22
阅读次数:
208
1、共享内存进行访问的程序片段称为临界区 2、互斥量和信号量:a、互斥量用于线程的互斥,信号量用于线程的同步,互斥访问是无序的 b、互斥量只能为0/1,信号量可以为非负整数 c、互斥量的加锁、解锁必须由同一线程分别对应使用,信号量可以由一个线程释放,另一个线程得到 3、进程是具有独立功能程序在某个数 ...
分类:
其他好文 时间:
2017-11-10 00:10:08
阅读次数:
222
基础的生产者消费者模型,生产者向公共缓存区写入数据,消费者从公共缓存区读取数据进行处理,两个线程访问公共资源,加锁实现数据的一致性。 通过加锁来实现 通过条件变量来实现 二、生产者消费者-双缓冲 一个公共缓存区,由于多线程访问的锁冲突较大,可以采取双缓冲手段来解决锁的冲突 双缓冲的关键:双缓冲队列的 ...
分类:
编程语言 时间:
2017-11-10 00:09:55
阅读次数:
273
1.概念: 对业务写方法加锁,对业务读方法不加锁,容易产生脏读问题(dirtyRead) 2.代码: ...
分类:
编程语言 时间:
2017-11-07 01:34:21
阅读次数:
202
1.对象的加锁及其操作 程序中单独的并发线程对同一对象进行操作的代码段,成为临界区。java语言中的临界区可以是一个语句块 或者方法,使用关键字synchronized进行标识。 对象锁:java平台把由synchronized语句指定的对象 设置为对象锁或者监视器(monitor),对象锁是一种独 ...
分类:
编程语言 时间:
2017-11-07 00:05:44
阅读次数:
201
数据库的 基本分为 共享锁和排它锁 排它锁顾名思义,不能和其他任何所共存。 以SqlServer中某一行数据为例, 特殊的,WithNoLock 这个是不给数据加上任何锁,所以根本和锁没关系 再说update,update的过程是给这条数据加上排它锁,所以当另外事物过来要求修改这条数据的时候,会由于 ...
分类:
数据库 时间:
2017-11-06 21:18:35
阅读次数:
183
涉及到 1.线程的启动(start) 2.线程的暂停(suspend()和resume()) 3.线程的停止(interrupt与异常停止,interrupt与睡眠中停止,stop(),return) 4.线程的优先级(setPriority()) 5.线程安全相关的问题(同步加锁,守护线程) 涉及 ...
分类:
编程语言 时间:
2017-11-05 23:35:52
阅读次数:
283
绝对的线程安全:一个内部有共享变量的对象构造后,就能在多线程环境下随意使用,且不发生错误,那么这个对象是线程安全的。 但现实中一般是相对安全的,即在对象构造后需要一些额外的操作来保证线程安全。 实现线程安全的方法: 1.互斥同步,在线程对共享资源操作之前,先加锁,操作完再解锁。 2.非阻塞同步,先对 ...
分类:
编程语言 时间:
2017-11-04 11:30:37
阅读次数:
143
一:通过静态私有成员实现单例模式 (1):私有化构造函数 (2):new静态实例属性对象,加锁。 单例类: 实现: 二:静态内部类实现单例模式 (1):私有化构造函数 (2):私有静态内部类,创建静态实例成员对象 (3):静态实例获取方法 单例类: 实现: ...
分类:
编程语言 时间:
2017-11-03 00:10:52
阅读次数:
293