导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:290
阅读量:550338
访问量:51384
至今:
×
分享博文列表:【并发
· 并发之痛 Thread,Goroutine,Actor
    本文基于我在2月27日Gopher北京聚会演讲整理而成,进行了一些补充以及调整。投稿给《高可用架构》公众号首发。聊这个话题之前,先梳理下两个概念,几乎所有讲并发的文章都要先讲这两个概念:并发(concurrency)并发的关注点在于任务切分。举例来说,你是一个创业公司的CEO,开 ...更多
(332)阅读 2018-01-04

· Java并发编程:线程池的使用
    在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以 ...更多
(336)阅读 2016-01-18

· Java 理论与实践: 线程池与工作队列
    线程池有助于实现最佳资源利用率贴在我们多线程Java编程论坛上最常见的问题之一是“怎样创建线程池?”。几乎在每个服务器应用程序中都会出现线程池和工作队列问题。本文中,BrianGoetz探讨了线程池的动机、一些基本实现和调优技术以及一些要避免的常见危险。为什么要用线程池?诸如We ...更多
(334)阅读 2016-01-14

· 聊聊并发(十)生产者消费者模式
    在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。为什么要使用生产者和消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者 ...更多
(401)阅读 2015-10-05

· 聊聊并发(九)Java中的CopyOnWrite容器
    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyO ...更多
(515)阅读 2015-10-03

· 聊聊并发(八)——Fork/Join框架介绍
    1.什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分 ...更多
(426)阅读 2015-10-02

· 聊聊并发(七)——Java中的阻塞队列
    1.什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列 ...更多
(415)阅读 2015-09-29

· 聊聊并发(六)ConcurrentLinkedQueue的实
    1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CA ...更多
(488)阅读 2015-09-27

· 聊聊并发(五)原子操作的实现原理
    1引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomicoperation)意为”不可被中断的一个或一系列操作”。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子操作的。2术语定义术语名称英文解 ...更多
(338)阅读 2015-09-26

· 聊聊并发(四)深入分析ConcurrentHashMap
    术语定义术语英文解释哈希算法hashalgorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hashtable根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储 ...更多
(428)阅读 2015-09-23

· 聊聊并发(三)Java线程池的分析和使用
    1.引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系 ...更多
(528)阅读 2015-09-21

· 聊聊并发(二)Java SE1.6中的Synchronize
    1引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着JavaSE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了JavaSE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻 ...更多
(245)阅读 2015-09-21

· 聊聊并发(一)深入分析Volatile的实现原理
    引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比syn ...更多
(317)阅读 2015-09-20