并发
wbj0110
这个作者很懒,什么都没留下…
展开
-
聊聊并发——生产者消费者模式(转)
在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者...原创 2014-05-06 14:36:45 · 99 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充(转)
我们经常提到一个短语Mechanical Sympathy,这个短语也是Martin博客的标题(译注:Martin Thompson),Mechanical Sympathy讲的是底层硬件是如何运作的,以及与其协作而非相悖的编程方式。 (译注:Martin Thompson很喜欢用Mechanical Sympathy这个短语,这个短语源于赛车驾驶,它反映了驾驶员对于汽车有一种天生的感觉,所...原创 2014-01-04 16:57:46 · 97 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(一)锁的缺点(转)
“Disruptor究竟是什么?"。 目前我正准备在回答这个问题,但首先回答"为什么它会这么快?" 这些问题持续出现,但是我不能没有说它是干什么的就说它为什么会这么快,不能没有说它为什么这样做就说它是什么东西。 所以我陷入了一个僵局,一个如何写博客的僵局。 要打破这个僵局,我准备以最简单方式回答第一个问题,如果幸运的话,在以后博文里,如果需要解释的话我会重新提回:Disruptor提...原创 2014-01-04 16:58:38 · 341 阅读 · 0 评论 -
深入分析Volatile的实现原理(转)
引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入...原创 2015-01-08 11:22:26 · 133 阅读 · 0 评论 -
JVM 并发性: 阻塞还是不阻塞?
在任何并发性应用程序中,异步事件处理都至关重要。事件来源可能是不同的计算任务、I/O 操作或与外部系统的交互。无论来源是什么,应用程序代码都必须跟踪事件,协调为响应事件而采取的操作。Java 应用程序可采用两种基本的异步事件处理方法:该应用程序有一个协调线程等待事件,然后采取操作,或者事件可在完成时直接执行某项操作(通常采取执行应用程序所提供的代码的方式)。让线程等待事件的方法被称为阻塞 方法。...原创 2015-01-23 12:00:09 · 149 阅读 · 0 评论 -
JVM 并发性: Scala 中的异步事件处理
在任何并发性应用程序中,异步事件处理都至关重要。无论事件的来源是什么(不同的计算任务、I/O 操作或与外部系统的交互),您的代码都必须跟踪事件,协调为响应它们而执行的操作。应用程序可以采用两种基本方法之一来实现异步事件处理: 阻塞:一个等待事件的协调线程。 非阻塞:事件向应用程序生成某种形式的通知,而没有线程显式等待它。 在 “JVM 并发性:阻塞还是非阻塞?” 中,可以了解 Ja...原创 2015-01-23 13:37:29 · 158 阅读 · 0 评论