摘要:
在这里分享下对AbstractQueuedSynchronizer原理和源码的学习资料,对于核心思想这里介绍的比较简单,建议大家还是网上搜下aqs的论文,先看论文,然后再看java concurrents包里的源码,会理解的更加透彻。一、核心思想: 1、 同步状态的原子操作 2、 线程的阻塞和唤醒 3、 维护一个队列,出入队列都是原子操作二、基本操作: 1、 入队列: a)添加到chl队列,并且设置其前任节点的singal状态,并阻塞 2、 出队列: a)队列的head node 才能获得执行权限三、非公平的获得锁的设计思路:nonfirelockif(!tryAcqui... 阅读全文
摘要:
1.graph错误 玩hadoop和KVM的肯定遇到过这个问题:不知怎么搞的,从virt-manager中点开虚拟机竟然看不到虚拟机的图形化界面!多么蛋疼的问题! google上也没有结果,但是仔细看资料会发现可以通过vncviewer 127.0.0.1 x(x是虚拟机的vnc端口号)查看到图形化界面,但是为什么在virt-manager中看不到;为了使hadoop job正常运行宿主机修改了/etc/hosts,删除了127.0.0.1,有没有,有没有? 2.虚拟机上网的问题: 桥接做好后虚拟机死活上不了网:1).子网掩码最好不要用prefix=xx,因为不好转换;2).开... 阅读全文
摘要:
如题,本文就《数据结构与算法》书中的7种基本算法做了一个java工程,此处结合工程启发大家其实很多东西做起来并不难,关键在于思想;工程利用coding中常用的继承思想使coder只需关注最重要的算法编码,而不用为每个算法的test一遍遍的复制粘贴: 1.工具类: package util; impo 阅读全文
摘要:
马上就要过年了,同事该撤的都撤了,我的心也开始飞了,趁此机会将以前做的数据缓存总结下,包含三个部分:模块简介、概要设计、详细设计、核心思想和代码。1.模块简介: 模块名称为数据总线,功能主要是封装数据传送层,使得数据生产者、消费者不再关心数据的传输,让其只需关心逻辑的处理。2.概要设计: 数据的生产者通过调用write()接口将要发送的数据交给数据总线,数据的消费者实现read()接口,当数据总线接收到消费者需求的数据时,回调消费者的read()方法处理数据,见末尾图:3.详细设计: 生产者设计图见末尾图;数据按组存储到DataFlow中,然后在缓存至DistributeData中,... 阅读全文