2015年5月9日
摘要: 本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock。 可重入锁,也叫做递归锁,指的是同一线程外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下ReentrantLock 和synchronized 都是可重入锁。 一、synchroni 阅读全文
posted @ 2015-05-09 09:13 duanxz 阅读(1960) 评论(0) 推荐(0)
摘要: AOP+Semaphore 对项目限流 Semaphore限流是从线程的个数限流。 RateLimiter是从速率限流,目前的算法有漏桶算法和令牌算法。 0、依赖 1、自定义注解 @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention 阅读全文
posted @ 2015-05-09 09:09 duanxz 阅读(554) 评论(0) 推荐(0)
摘要: CyclicBarrier介绍一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称 阅读全文
posted @ 2015-05-09 08:34 duanxz 阅读(1545) 评论(0) 推荐(0)
摘要: 一、简介二、概念 2.1、Semaphore信号量模型 2.2、Semaphore分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得 2.3、公平/非公平模式 2.4、主要的方法三、Semaphore应用场景 示例-1:Semaphore可以做到一个deadlock recover 阅读全文
posted @ 2015-05-09 08:30 duanxz 阅读(2014) 评论(0) 推荐(0)
摘要: Websocket websocket为一次HTTP握手后,后续通讯为tcp协议的通讯方式。 WebSocket 使用一种被称作“Upgrade handshake(升级握手)”的机制将标准的 HTTP 或HTTPS 协议转为 WebSocket。因此,使用 WebSocket 的应用程序将始终以 阅读全文
posted @ 2015-05-09 08:19 duanxz 阅读(3926) 评论(0) 推荐(1)
摘要: DelayedWorkQueue优先队列 该队列是定制的优先级队列,只能用来存储RunnableScheduledFutures任务。堆是实现优先级队列的最佳选择,而该队列正好是基于堆数据结构的实现。 1.关于堆的一些知识 堆结构是用数组实现的二叉树,数组下标可以表明元素节点的位置,所以省去指针的内 阅读全文
posted @ 2015-05-09 00:29 duanxz 阅读(1805) 评论(0) 推荐(0)