随笔分类 -  JAVA并发编程实战

摘要:package cn.study.concurrency.ch14; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 使用condition作为挂起线程的信号 ... 阅读全文
posted @ 2016-11-29 16:37 cutter_point 阅读(1154) 评论(0) 推荐(0)
摘要:1、有界缓存的基类 2、判定前提条件再执行操作 3、通过轮询与休眠来实现简单的阻塞 4、条件队列 阅读全文
posted @ 2016-11-27 15:49 cutter_point 阅读(768) 评论(0) 推荐(0)
摘要:1、产生随机数 2、缓存队列 3、测试方法 阅读全文
posted @ 2016-11-25 10:17 cutter_point 阅读(715) 评论(0) 推荐(0)
摘要:package cn.study.concurrency.ch11; /** * 锁分段 * @author xiaof * */ public class StripedMap { //同步策略:就是对数组进行分段上锁,n个节点用n%LOCKS锁保护 private static final int N_LOCKS = 16; private final No... 阅读全文
posted @ 2016-11-18 11:55 cutter_point 阅读(853) 评论(0) 推荐(0)
摘要:测试结果: 阅读全文
posted @ 2016-11-17 10:55 cutter_point 阅读(800) 评论(0) 推荐(0)
摘要:这里是一个应用项目使用生产消费模型的日志类 更加可靠的取消日志服务的操作 阅读全文
posted @ 2016-11-08 10:48 cutter_point 阅读(474) 评论(2) 推荐(0)
摘要:所谓的中断操作:它并不会真正地中断一个正在运行的线程,而只是发出中断请求,然后由线程在下一个合适的时刻中断自己。 调用一次interrupt中断请求,再次调用就是把中断状态恢复 1、响应中断 处理中断异常: 1》传递异常 2》恢复中断状态 这里有一个示例,用来限时运行任务,在规定的时间内,不论程序是 阅读全文
posted @ 2016-11-04 11:11 cutter_point 阅读(547) 评论(0) 推荐(0)
摘要:首先创建一个借口,用来表示耗费资源的计算 实现接口,实现计算过程 功能实现1,这个不是现场安全的,就是一个简单的缓存机制,如果有就直接从缓存中获取,没有的话就添加到缓存中 功能实现2:添加一个future进行异步处理,就是把原来的数据计量分化到异步处理中,这样就不会产生阻塞在一个地方,造成其他线程等 阅读全文
posted @ 2016-10-31 22:29 cutter_point 阅读(293) 评论(0) 推荐(0)
摘要:这是一个计数锁,说白了,就是当你上锁的时候,只有计数减少到0的时候,才会释放锁 结果 阅读全文
posted @ 2016-10-30 18:09 cutter_point 阅读(346) 评论(0) 推荐(0)
摘要:同步容器包括Vector和Hashtable,还有一些由Collections.synchronizedXxx等工厂方法创建的 1、同步容器类的问题 同步容器类都是线程安全的,但是有些时候还是要客户端加锁来保护复合操作 就比如vector的操作,如果又两个方法一个获取vector集合的最后一个元素, 阅读全文
posted @ 2016-10-25 22:09 cutter_point 阅读(400) 评论(0) 推荐(0)
摘要:1、 设计线程安全的类 1、找出构成对象状态的所有变量 2、找出约束状态变量的不变性条件 3、建立对象状态的并发访问管理策略 2、实例封闭 将数据封装在对象内部,可以将数据的访问限制在对象的方法上,从而更容易确保线程在访问数据时总能持有正确的锁。 通过封闭与加锁等机制使一个类成为线程安全的 2、1 阅读全文
posted @ 2016-10-23 22:04 cutter_point 阅读(510) 评论(0) 推荐(0)
摘要:1、栈封闭 在栈封闭中,只能通过局部变量才能访问对象。 所谓栈封闭就是把变量的声明以及应用都局限在一个局部线程中,在这个局部线程中声明和实例化的对象对于线程外部是不可见的,这个局部线程的栈,无法被任何其他线程访问。 2、不变性 不可变对象一定是线程安全的 3、安全发布的常用模式 要安全发布一个对象, 阅读全文
posted @ 2016-10-23 18:15 cutter_point 阅读(385) 评论(1) 推荐(0)