在foreach循环里面,不能用remove方法,因为当list里面的最后一个元素被remove时候,会报错。摘自《阿里巴巴Java开发手册》【强制】不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。反例:List<String&..
分类:
其他好文 时间:
2017-10-10 16:54:10
阅读次数:
182
synchronized、volatile、ReentrantLock、concurrent 线程安全:当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的 synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为“互拆区” ...
分类:
编程语言 时间:
2017-10-10 10:02:55
阅读次数:
204
单例模式之--懒汉,双重加锁判断 public SingleModel{ private static singleModel singleModel = null ; private SingleModel{ } public static SingleModel getSingleModel ( ...
分类:
其他好文 时间:
2017-10-08 15:29:22
阅读次数:
139
1:线程的概念 进程(任务):一个正在运行的程序 进程的调度:CPU来决定什么时候该运行哪个进程 (时间片轮流法) 1.2 线程和进程的关系 a:一个进程可以创建多个线程 b:线程必须依赖于进程而存在 c:多个线程共享进程的空间 d:进程和线程得到CPU的机会是均等的‘ 1.3 为什么要搞多线程 我 ...
分类:
编程语言 时间:
2017-10-07 20:43:37
阅读次数:
148
1 前言 数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。 2 锁 ...
分类:
数据库 时间:
2017-10-03 17:23:44
阅读次数:
201
select for update/lock in share mode 对事务并发性影响 事务并发性理解 事务并发性,粗略的理解就是单位时间内能够执行的事务数量,常见的单位是 TPS( transactions per second). 那在数据量和业务操作量一定的情况下,常见的提高事务并发性主要 ...
分类:
数据库 时间:
2017-09-30 13:37:18
阅读次数:
265
1、高并发带来的问题就是 {公共资源 } 的读写不准确 2、解决高并发的几种场景: 场景一) 同一个JVM进程(jee中就是同一个tomcat)中,公共资源在同一块内存中,使用synchronized关键字给代码块或是方法加锁,使得同一个代码块不会被同时调用;成员变量的数据类型尽量使用JUC中的at ...
分类:
其他好文 时间:
2017-09-29 21:18:40
阅读次数:
213
1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路, ...
分类:
数据库 时间:
2017-09-29 16:31:55
阅读次数:
224
MySQL 加锁处理分析 原文:http://hedengcheng.com/?p=771 原文:http://hedengcheng.com/?p=771 1 背景 1 1.1 MVCC:Snapshot Read vs Current Read 2 1.2 Cluster Index:聚簇索引 ...
分类:
数据库 时间:
2017-09-29 11:01:31
阅读次数:
260
(参考:http://www.cnblogs.com/java-my-life/archive/2012/03/31/2425631.html) ...
分类:
其他好文 时间:
2017-09-26 22:33:37
阅读次数:
196