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

浙公网安备 33010602011771号