摘要: ThreadPoolExecutor线程池介绍 阅读全文
posted @ 2014-08-24 20:59 peiyuc 阅读(368) 评论(0) 推荐(0)
摘要: 最近对移动开发产生兴趣,决定在未来几年内利用空余时间开发一些app或游戏什么的,鉴于ios开发成本较高,且自身对java相对熟悉,因此选择了学习android。都说android市场不很很好,收益较难,但是仍觉得只要功夫深,产品好,总会有人用。不扯了,去网上搜了一下都是大部分android开发都是基... 阅读全文
posted @ 2014-07-12 16:24 peiyuc 阅读(4048) 评论(0) 推荐(0)
摘要: 要编写线程安全的代码,核心在于要对状态访问操作进行管理,特别是共享的(shared)和可变的(mutable)状态的访问。对象的状态是指存储在状态变量中的数据,可能包括依赖对象的域。“共享”意味着变量可以由多个线程同时访问;“可变”意味着变量的值在其生命周期内可以发生变化。一个对象是否需要是线程安全的,取决于它是否被多个线程访问,而不是对象要实现的功能。修改线程不安全代码的方法:1.不再线程间共享该变量的状态(封闭线程)2.将状态变量修改为不可变的3.在访问变量状态时使用同步在设计代码的初期就应该考虑线程安全的问题2.1什么是线程安全性无状态变量一定是线程安全的2.2原子性2.2.1竞态条件由 阅读全文
posted @ 2014-04-07 14:39 peiyuc 阅读(187) 评论(0) 推荐(0)
摘要: 1.可见性为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。如果缺乏同步机制,其他线程可能读取不到一个线程对变量的写操作,更可能由于存在重排序的现象导致其余线程产生一些“奇怪”的现象。重排序导致:在缺乏足够的同步机制的程序中,要想对内存操作的执行顺序进行判断,几乎无法得到正确的结果关于重排序可见:http://www.infoq.com/cn/articles/java-memory-model-21.1失效数据1 public class MutableInteger{2 private int value;3 4 public int get() {retu... 阅读全文
posted @ 2014-03-30 15:03 peiyuc 阅读(216) 评论(0) 推荐(0)
摘要: 一、事务事务是一组原子性的SQL查询语句,也可以被看做一个工作单元。1、特性(ACID)automicity:原子性,事务所引起的数据库操作,要么都成功,要么都失败consisitency:一致性,事务执行前的总和和事务执行后的总和是不变的isolation:隔离性, 某个事务的结果只有在完成之后才对其他事务可见durability:持久性,一旦事务成功完成,系统必须保证任何故障都不会引起事务表现出不一致性2、隔离级别read uncommitted: 可能读取到其他事务中未提交修改的数据(脏读)read committed: 只能读取到已经提交的数据(不能重复读)repeatable rea 阅读全文
posted @ 2014-03-23 13:03 peiyuc 阅读(362) 评论(0) 推荐(0)
摘要: 今天看Java并发编程实践时,看到关于为计算结果建立高效、可伸缩的高效缓存的时候,书中首先用了HashMap做缓存容器(我们在项目中也常使用),在读取缓存值时会存在线程安全的问题,下面这段代码是我们项目里的业务代码: 1 private static Map> domainOrderIdMap = Maps.newHashMap(); 2 private Set getOrderIdSet(String domain) { 3 // 需要过滤的订单id集合 4 Set filterOrderIdsSet; 5 if (domainOrderIdMap.get(domain) =... 阅读全文
posted @ 2014-03-02 11:31 peiyuc 阅读(248) 评论(0) 推荐(0)