Java Concurrency
文章平均质量分 81
Dason_yu
从此以后,我遇见了青山,遇见了白雾。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java并发编程(一)之java.util.concurrent包简介
java并发编程。原创 2018-02-09 11:07:55 · 553 阅读 · 0 评论 -
java并发编程(十二)之 BlockingQueue
一、UML类图1 BlockingQueue 的用法:在 JDK中对 BlockingQueue的描述是这样的:获取元素时等待队列变为非空,以及存储元素时等待空间变得可用。其意思为一个线程往BlockingQueue放元素,另外一个线程从 BlockingQueue里边取元素。假若一个生产线程将会持续的将对象插入到队列之中,当队列满了,则这个生产线程会被阻塞,直到负责消费的线程从队列中拿走一个对象...原创 2018-02-09 14:31:44 · 414 阅读 · 0 评论 -
java并发编程(二)之 传统线程
一.创建线程方式1.继承Thread类package com.dason.javaThread;/** * 需求:子线程打印1-50,主线程打印51-100 * * @author Dason * */public class TestThread { public static void main(String[] args) { SubThread subTh...原创 2018-03-18 17:12:05 · 338 阅读 · 0 评论 -
java并发编程(九)之线程篱栅CyclicBarrier
一、定义它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。二、用法package cn.itcast.heima2;import java.util.concurr...原创 2018-03-29 23:17:14 · 406 阅读 · 0 评论 -
java并发编程(四)之 ThreadLocal实现线程局部变量
一、ThreadLocal 介绍在并发的情况下,多个线程会同时访问同一个变量,这会引起线程安全问题。而ThreadLocal 针对这种情况就被提了出来。他的思想从他的名字就可以看出来,线程局部(变量),即当多个线程访问同一个变量时,每个线程都会拿到这个变量的一个副本,各个线程操作的各自副本,互不干扰。二、思想的具体实现Thread类有一个类型为ThreadLocal.ThreadLocalMap的...原创 2018-03-24 23:38:39 · 498 阅读 · 0 评论 -
java并发编程(十)之线程倒计数锁存器CountDownLatch
一、定义一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 CyclicBarr...原创 2018-03-30 22:38:02 · 635 阅读 · 0 评论 -
java并发编程(五)之 jdk5 的锁
一、锁介绍(出处:参照原文博客)1.可重入锁如果锁具备可重入性,则称作为可重入锁。像synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机制:基于线程的分配,而不是基于方法调用的分配。举个简单的例子,当一个线程执行到某个synchronized方法时,比如说method1,而在method1中会调用另外一个synchronized方法method2...原创 2018-03-25 21:53:43 · 365 阅读 · 0 评论 -
java并发编程(六)之读写锁
一、读写锁我们知道在多个线程访问同一个数据的时候是存在线程安全问题的,而在仅仅是读取数据的时候,是没有安全问题的,那么多个线程同时读取数据我们就可以让其不互斥;而多个线程都在修改(写)数据或有的在读取有的在写入的时候再让其互斥,这样不但保证线程安全而且提高性能。ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reade...原创 2018-03-26 00:06:46 · 342 阅读 · 0 评论 -
java并发编程(三)之 传统线程思想与细节
一、构造方法与匿名内部类/** * new Thread(){}:在构造方法 new Thread() 后面加上{},表示创建一个匿名内部类的对象. * (父类:Thread;子类:内部类),在{} 实现run()后,调用时会覆盖父类方法. * new Thread(Runnable runnable): 带参构造.调用时则会执行 runnable 的run().【参见Thread类源码】...原创 2018-03-21 23:15:10 · 288 阅读 · 0 评论 -
java并发编程(七)之线程通信Condition
一、conditionCondition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。条件(也称为条件队列 或条件...原创 2018-03-26 23:50:35 · 365 阅读 · 0 评论 -
java并发编程(十三)之线程Volatile内存可见性
Volatile 内存可见性 CAS算法原创 2018-04-02 00:10:58 · 418 阅读 · 0 评论 -
java并发编程(十一)之线程交换器Exchanger<V>
线程变量交换器Exchanger原创 2018-03-30 23:11:35 · 595 阅读 · 0 评论 -
java并发编程(十四)之集合的并发修改异常
集合的并发修改异常原创 2018-04-03 23:00:01 · 491 阅读 · 0 评论 -
java并发编程(十五)之线程池
待续...package com.dason.juc2;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executor...原创 2018-04-03 23:31:59 · 416 阅读 · 0 评论 -
java并发编程(八)之线程信号量Semaphore
一、信号量一个计数信号量。从概念上讲,信号量维护了一个许可集。Semaphore经常用于限制获取某种资源的线程数量。在java并发中,即Semaphore维护指定数量许可,当Semaphore中有额外(空闲)的许可时,线程获取到许可信号后(调用acquire()),线程才允许被执行,否则将被阻塞。当线程执行完毕,就会将占用的许可释放(调用release())。此类的构造方法可选地接受一个公平 参数...原创 2018-03-28 21:53:04 · 508 阅读 · 0 评论
分享