摘要:转自 知乎 https://zhuanlan.zhihu.com/p/21355046 order从client端传入,decode后进行matching,一旦存在可成交的价格,就要publish到time series,并且把trade存到local的database里。如何handle这么大数量
阅读全文
摘要:LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend 和 Thread.resume所可能引发的死锁”问题。因为p
阅读全文
摘要:目录 1.基础知识 2.简单应用 3.异常机制 4.丰富的扩展 一.基础知识 构造函数。 public ThreadPoolExecutor( int corePoolSize, 指的是保留的线程池大小 int maximumPoolSize, 指的是线程池的最大大小 long keepAliveT
阅读全文
摘要:Exchanger 是一个同步辅助类,用于两个并发线程之间在一个同步点进行数据交换。 允许两个线程在某一个点进行数据交换。 可以视作双向的同步队列; 可应用于基因算法、流水线设计等场景 Exchanger提供了 一个同步点 , 在这个同步点,两个线程可以交换数据 。每个线程通过exchange()方
阅读全文
摘要:Boolean值的变化的时候不允许在之间插入,保持操作的原子性 它提供了原子性操作,其中exists.compareAndSet(false, true)这个操作把比较和赋值操作组成了一个原子操作,中间不会提供可乘之机.输出为 AtomicBoolean 高效并发处理 “只初始化一次” 可以让一个线
阅读全文
摘要:一.线程并发控制 Thread、Executor、ForkJoin和Actor 1.裸线程 Runnable接口,调用.start()开始,没有现成的API来结束线程,你需要自己来实现,通过类似boolean类型的标记来通讯 使用Runnable对象,然后创建对应的Thread对象来控制程序中这些线
阅读全文
摘要:转自 http://blog.csdn.net/mr_zhuqiang/article/details/48300229 三.使用异步方式 invokeAll(task1,task2); 是同步方式,将当前任务挂起直到子任务发送到 Fork/join线程池中执行完成,这种方式允许工作窃取算法,分配一
阅读全文
摘要:Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数,并提供了同步机制。 使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。 一个计数信号量。从概念上讲,信号量维护了一个许可集。 如有必要,在许可可用前会阻塞每一个 acquire(),然
阅读全文
摘要:CyclicBarrier回环栅栏,字面意思是可循环使用(Cyclic)的屏障(Barrier)。通过它可以实现让一组线程等待至某个状态之后再全部同时执行。 它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。
阅读全文
摘要:CountDownLatch类是一个同步计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞程序继续执行 CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种
阅读全文
摘要:目录 前言 生产者和消费者 发布和订阅 Java实现 注意 转至 http://www.tianmaying.com/tutorial/springboot-redis-message 前言 利用Spring Data对Redis的支持来实现消息的发布订阅机制。使用StringRedisTempla
阅读全文
摘要:创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果 转自 :http://www.cnblogs.com/dolphin0520
阅读全文
摘要:经典模式:生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队
阅读全文
摘要:一.基本概念 if you call me, i will call back 什么是回调函数 回调函数(callback Function),顾名思义,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回
阅读全文
摘要:一.事件机制基本概念 java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event listener:对每个明确的事件的发生,都相应地定义一个明确的Java方法。这些方法都
阅读全文
摘要:一.基本概念 java.util.Observable 被观察者类,需要继承这个类 java.util.Observer 观察者类,需要实现这个接口中的update()方法 二.举例 Door2 属性 name 和status 改变,被监管1.Door2 2.被监管对象 Door2StateObse
阅读全文
摘要:转 http://ifeve.com/zookeeper-consistency-guarantees/ 本文翻译自《ZooKeeper官方指南》,译者:追云,校对:追云 一致性保障 ZooKeeper是一个高性能,可扩展的服务。虽然读比写更快,但在设计上,它的读操作和写操作都很快。(读比写更快)之
阅读全文
摘要:转 http://ifeve.com/why-threads-bad/ 在 Unix编程艺术 中,提到了尽量避免多线程编程模型, 认为这样只会增加复杂度, 提倡使用多进程, 这样本质上就可以避免多线程『共享内存数据』产生的 “corruotped memory” 问题。 其中, 提到了一篇文章 Wh
阅读全文