lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 167 168 169 170 171 172 173 174 175 ··· 184 下一页

2018年5月28日

摘要: 看到一片不错的精简的redis文档,转载之,便于复习梳理之用 转自:https://www.cnblogs.com/rjzheng/p/9096228.html 引言 为什么写这篇文章? 博主的《分布式之消息队列复习精讲》得到了大家的好评,内心诚惶诚恐,想着再出一篇关于复习精讲的文章。但是还是要说明 阅读全文
posted @ 2018-05-28 16:13 白露~ 阅读(551) 评论(0) 推荐(0)

摘要: 1、Thread 类中的start() 和 run() 方法有什么区别? Thread.start()方法(native)启动线程,使之进入就绪状态,当cpu分配时间该线程时,由JVM调度执行run()方法。 当你调用start()方法时你将创建新的线程,并且执行在run()方法里的代码。但是如果你 阅读全文
posted @ 2018-05-28 15:24 白露~ 阅读(370) 评论(0) 推荐(0)

2018年5月26日

摘要: 主要谈谈锁的性能以及其它一些理论知识,内容主要的出处是《Java Concurrency in Practice》,结合自己的理解和实际应用对锁机制进行一个小小的总结。 首先需要强调的一点是:所有锁(包括内置锁和高级锁)都是有性能消耗的,也就是说在高并发的情况下,由于锁机制带来的上下文切换、资源同步 阅读全文
posted @ 2018-05-26 19:03 白露~ 阅读(316) 评论(0) 推荐(0)

摘要: 这一节主要是谈谈读写锁的实现。 上一节中提到,ReadWriteLock看起来有两个锁:readLock/writeLock。如果真的是两个锁的话,它们之间又是如何相互影响的呢? 事实上在ReentrantReadWriteLock里锁的实现是靠java.util.concurrent.locks. 阅读全文
posted @ 2018-05-26 18:57 白露~ 阅读(243) 评论(0) 推荐(0)

摘要: 从这一节开始介绍锁里面的最后一个工具:读写锁(ReadWriteLock)。 ReentrantLock 实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念。前面的章节中一直在强调这个特点。显然这个特点在一定程度上面减低了吞吐量,实际上独占锁是一种保守的锁策略,在这种情况下任 阅读全文
posted @ 2018-05-26 18:10 白露~ 阅读(297) 评论(0) 推荐(0)

摘要: Semaphore 是一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并 阅读全文
posted @ 2018-05-26 17:57 白露~ 阅读(295) 评论(0) 推荐(0)

摘要: 如果说CountDownLatch是一次性的,那么CyclicBarrier正好可以循环使用。它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。所谓屏障点就是一组任务执行完毕的时刻。 清单1 一个使用CyclicBarrier的例子 package xyl 阅读全文
posted @ 2018-05-26 17:28 白露~ 阅读(202) 评论(0) 推荐(0)

2018年5月25日

摘要: 此小节介绍几个与锁有关的有用工具。 闭锁(Latch) 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都将通过,但是一旦大门打开,所有线程都通过了,那么这个闭锁的状态就失效了,门 阅读全文
posted @ 2018-05-25 17:17 白露~ 阅读(341) 评论(0) 推荐(0)

摘要: 本小节介绍锁释放Lock.unlock()。 Release/TryRelease unlock操作实际上就调用了AQS的release操作,释放持有的锁。 public final boolean release(int arg) { if (tryRelease(arg)) { Node h = 阅读全文
posted @ 2018-05-25 16:24 白露~ 阅读(400) 评论(0) 推荐(0)

摘要: 接上篇,这篇从Lock.lock/unlock开始。特别说明在没有特殊情况下所有程序、API、文档都是基于JDK 6.0的。 public void java.util.concurrent.locks.ReentrantLock.lock() 获取锁。 如果该锁没有被另一个线程保持,则获取该锁并立 阅读全文
posted @ 2018-05-25 15:28 白露~ 阅读(718) 评论(0) 推荐(0)

上一页 1 ··· 167 168 169 170 171 172 173 174 175 ··· 184 下一页