上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 复杂场景下使用RingBuffer(P1生产的数据给C1、C2并行执行,最后C1、C2执行结束后C3执行) 这是一种菱形操作 顺序执行操作,这个操作比较简单,(P1生产的数据给C1,C1执行完成后,给C2) 六边形执行操作,这个操作比较复杂,(P1生产的数据给C1A,C2A,这两个执行完成后,分别丢 阅读全文
posted @ 2017-03-09 19:53 小~虎 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 场景使用: 在HelloWorld的实例中,我们创建Disruptor实例,然后调用getRingBuffer方法去获取RingBuffer,其实在很多时候,我们可以直接使用RingBuffer,以及其他的API操作,看一下示例: 使用EventProcessor消息处理器; 使用WorkerPoo 阅读全文
posted @ 2017-03-09 19:14 小~虎 阅读(669) 评论(0) 推荐(0) 编辑
摘要: Disruptor术语 RingBuffer:被看作Disruptor最主要的组件,然而从2.0开始RingBuffer仅仅负责存储和更新在Disruptor中流通的数据。对一些特殊的使用场景能够被用户(使用其他数据结构)完全替代。 Sequence:Disruptor使用Sequence来表示一个 阅读全文
posted @ 2017-03-07 20:05 小~虎 阅读(616) 评论(0) 推荐(0) 编辑
摘要: Martin Fowler在自己网站上写一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金额交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使用事件源驱动方式。业 阅读全文
posted @ 2017-03-07 16:54 小~虎 阅读(360) 评论(0) 推荐(0) 编辑
摘要: ReentrantReadWriteLock(读写锁) 读写锁ReentrrantWriteLock, 其核心就是实现读写分离的锁,在高并发访问下,尤其是读多写少的情况下,性能要远高于重入锁。 之前学synchronized、ReentrantLock时,我们知道,同一时间内,只能有一个线程进行访问 阅读全文
posted @ 2017-03-03 14:29 小~虎 阅读(411) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock(重入锁) 重入锁:在需要进行同步的代码部分加上锁定,但不要忘记最后一定要释放锁定,不然会造成锁永远无法释放,其他线程永远进不来的结果。 然后我们看一下打印的结果: 只有在第一个方法结束后,才会去执行第二个方法。 这种用法跟synchronized的用法差不多,还记得我们在 阅读全文
posted @ 2017-03-03 10:29 小~虎 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 在Semaphore信号量非常适合高并发访问,新系统在上线之前,要对系统的访问量进行评估,当然这个值肯定不是随便拍拍脑袋就能想出来的,是经过以往的经验、数据、历年的访问量,已经推广力度进行一个合理的评估,当然评估标准不能太大也不能太小,太大的话投入的资源达不到实际效果,纯粹浪费资源,太小的话,某个时 阅读全文
posted @ 2017-02-28 14:11 小~虎 阅读(437) 评论(0) 推荐(0) 编辑
摘要: Future模式非常适合在处理很耗时很长的业务逻辑时进行使用,可以有效的减少系统的响应时间,提高系统的吞吐量。 看一个小的demo: 看一下执行结果: 这是异步去获取结果的示例,在子线程去处理任务的时候,主线程可以进行自己的逻辑处理。 这个类要实现Callable接口,实现call()方法。 如果主 阅读全文
posted @ 2017-02-27 17:16 小~虎 阅读(171) 评论(0) 推荐(0) 编辑
摘要: CyclicBarrier的使用: 假设只有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待。 CountDownLacth使用: 他经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作。 下面先看一个CountDownLatch 阅读全文
posted @ 2017-02-27 16:02 小~虎 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 这个构造方法对于队列是什么类型的比较关键 在使用有界队列时,若有新的任务需要执行,如果线程池实际线程数小于corePoolSize,则优先创建线程,若大于corePoolSize,则会将任务加入队列,若队里已满,则在总线程数不大于maximumPoolSize的前提下,创建新的线程,若线程数大于ma 阅读全文
posted @ 2017-02-24 11:34 小~虎 阅读(537) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页