随笔分类 -  java并发编程

摘要:其实ThreadLocal很多接触过多线程的同学都可能会很陌生,他不像current包里面那些耳熟能详的api一样在我们面前经常出现,更多的他作为一个本地类出现在系统设计里面。... 阅读全文
posted @ 2017-06-21 00:24 rickiyang 阅读(450) 评论(0) 推荐(0) 编辑
摘要:Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。LinkedBlock... 阅读全文
posted @ 2017-03-02 23:46 rickiyang 阅读(310) 评论(0) 推荐(0) 编辑
摘要:这一节我们来了解阻塞队列(BlockingQueue),BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,当容量... 阅读全文
posted @ 2017-02-28 21:42 rickiyang 阅读(286) 评论(0) 推荐(0) 编辑
摘要:ConcurrentSkipListMap提供了一种线程安全的并发访问的排序映射表。内部是SkipList(跳表)结构实现,在理论上能够在O(log(n))时间内完成查找、插入... 阅读全文
posted @ 2017-02-27 21:45 rickiyang 阅读(381) 评论(0) 推荐(0) 编辑
摘要:这一节我们来看一下并发的Map,ConcurrentHashMap和ConcurrentSkipListMap。ConcurrentHashMap通常只被看做并发效率更高的Ma... 阅读全文
posted @ 2017-02-26 10:41 rickiyang 阅读(430) 评论(0) 推荐(0) 编辑
摘要:这一节我们来接着介绍JUC集合:CopyOnWriteArraySet和ConcurrentSkipListSet。从名字上来看我们知道CopyOnWriteArraySet与... 阅读全文
posted @ 2017-02-26 10:35 rickiyang 阅读(979) 评论(0) 推荐(1) 编辑
摘要:这一节开始我们正式来介绍JUC集合类。我们按照List、Set、Map、Queue的顺序来进行介绍。这一节我们来看一下CopyOnWriteArrayList。CopyOnWr... 阅读全文
posted @ 2017-02-23 17:17 rickiyang 阅读(316) 评论(0) 推荐(0) 编辑
摘要:本节我们将继续学习JUC包中的集合类,我们知道jdk中本身自带了一套非线程安全的集合类,我们先温习一下java集合包里面的集合类,然后系统的看一下JUC包里面的集合类到底有什么... 阅读全文
posted @ 2017-02-23 17:14 rickiyang 阅读(502) 评论(0) 推荐(0) 编辑
摘要:还记得我们在初始介绍线程池的时候提到了Executor框架的体系,到现在为止我们只有一个没有介绍,与ThreadPoolExecutor一样继承与AbstractExecuto... 阅读全文
posted @ 2017-02-20 21:02 rickiyang 阅读(335) 评论(0) 推荐(0) 编辑
摘要:前面我们简单介绍了线程池的使用,但是对于其如何运行我们还不清楚,Executors为我们提供了简单的线程工厂类,但是我们知道ThreadPoolExecutor是线程池的具体实... 阅读全文
posted @ 2017-01-23 18:01 rickiyang 阅读(331) 评论(0) 推荐(0) 编辑
摘要:上节我们简单介绍了线程池,这次我们就来使用一下。Executors提供四种线程池,分别是:newCachedThreadPool,newFixedThreadPool ,new... 阅读全文
posted @ 2017-01-21 23:25 rickiyang 阅读(224) 评论(0) 推荐(0) 编辑
摘要:好的软件设计不建议手动创建和销毁线程。线程的创建和销毁是非常耗 CPU 和内存的,因为这需要 JVM 和操作系统的参与。64位 JVM 默认线程栈是大小1 MB。这就是为什么说... 阅读全文
posted @ 2017-01-19 21:42 rickiyang 阅读(298) 评论(0) 推荐(0) 编辑
摘要:今天我们介绍原子类的最后一个类型—-对象的属性修改类型: AtomicIntegerFieldUpdater,AtomicLongFieldUpdater,AtomicRefe... 阅读全文
posted @ 2017-01-17 22:14 rickiyang 阅读(517) 评论(0) 推荐(0) 编辑
摘要:这一节我们将探讨引用类型原子类:AtomicReference, AtomicStampedRerence, AtomicMarkableReference。AtomicRef... 阅读全文
posted @ 2017-01-15 16:18 rickiyang 阅读(524) 评论(0) 推荐(0) 编辑
摘要:上一节我们介绍过三个基本类型的原子类,这次我们来看一下数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArr... 阅读全文
posted @ 2017-01-13 21:38 rickiyang 阅读(397) 评论(0) 推荐(0) 编辑
摘要:上一节我们说到了基本原子类的简单介绍,这一节我们先来看一下基本类型: AtomicInteger, AtomicLong, AtomicBoolean。AtomicIntege... 阅读全文
posted @ 2017-01-12 22:44 rickiyang 阅读(469) 评论(0) 推荐(0) 编辑
摘要:今天我们来看一下JUC包中的原子类,所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一... 阅读全文
posted @ 2017-01-12 21:32 rickiyang 阅读(250) 评论(0) 推荐(0) 编辑
摘要:上一篇我们介绍了CountDownlatch,我们知道CountDownlatch是“在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待”,即CountDow... 阅读全文
posted @ 2017-01-11 23:20 rickiyang 阅读(261) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch 是一个非常实用的多线程控制工具类。” Count Down ” 在英文中意为倒计数, Latch 为门问的意思。如果翻译成为倒计数门阀, 我想大家... 阅读全文
posted @ 2017-01-10 23:24 rickiyang 阅读(294) 评论(0) 推荐(0) 编辑
摘要:前面我们已经分析过JUC包里面的Lock锁,ReentrantLock锁和semaphore信号量机制。Lock锁实现了比synchronized更灵活的锁机制,Reentra... 阅读全文
posted @ 2017-01-07 21:36 rickiyang 阅读(309) 评论(0) 推荐(0) 编辑