6 传说中的靖哥哥

尚未进行身份认证

小小程序员一枚

等级
TA的排名 7w+

并发编程(十六):线程池

一,ThreadPoolExecutor概述1,线程池优势在Java中,如果每个请求到达就创建一个线程,创建线程和销毁线程对系统资源的消耗都非常大,甚至可能比实际业务处理消耗的资源都大。同时,如果在JVM中创建太多的线程,也可能由于过度消耗内存或调度切换从而导致系统资源不足。为了解决上面提出的问题,就有了线程池的概念。线程池,就是在一个线程容器中提前放置一定量的初始化...

2019-10-08 00:07:05

并发编程(十五):原子操作之AtomicInteger

一,Atomic概述1,原子类*JUC中提供了一系列原子类,通过CAS在多线程环境下来保证原子操作,此处只对AtomicInteger进行简单分析2,常用API*同时,Atomic类提供了一系列API来保障原子操作,但是殊途同归,底层都是通过CAS来实现,只是提供了更多的功能而已,此处仅列出部分。可以看到涉及常规的数据变更3,功能DEMO...

2019-10-08 00:03:05

并发编程(十四):阻塞队列之LinkedBlockingQueue

一,关联源码链接*并发编程(四):AbstractQueuedSynchronizer源码分析*并发编程(五):AQS之重入锁ReentrantLock*并发编程(七):AQS之Condition二,LinkedBlockingQueue概述1,LinkedBlockingQueueLinkedBlockingQueue底层通过链表...

2019-10-07 23:58:24

并发编程(十三):阻塞队列之ArrayBlockingQueue

一,关联源码链接*并发编程(四):AbstractQueuedSynchronizer源码分析*并发编程(五):AQS之重入锁ReentrantLock*并发编程(七):AQS之Condition二,ArrayBlockingQueue概述1,ArrayBlockingQueueArrayBlockingQueue是通过数组实现的FI...

2019-10-07 23:57:51

并发编程(十二):ConcurrentHashMap源码分析

一,ConcurrentHashMap概述1,ConcurrentHashMap*ConcurrentHashMap和HashMap原理基本一致,就是在HashMap的基础上增加了锁处理,支持并发操作,在实现上比HashMap更复杂点。先比较与JDK7,JDK8在实现上,修改原来通过Segment进行加锁的方式改为通过Node进行加锁,同时在链表方面,如果...

2019-10-07 23:56:43

并发编程(十一):ThreadLocal源码分析

一,ThreadLocal概述1,TheadLocal——线程隔离对象*JDK内部提供了线程隔离对象ThreadLocal,注意该类与AQS或者JUC基本没有关系。线程对ThreadLocal操作,实际上对线程属性threadLocals进行操作,该属性是ThreadLocal内部类ThreadLocalMap的实例。ThreadLocal底层通过Th...

2019-10-07 23:56:10

并发编程(十):AQS之CyclicBarrier

一,底层AQS源码分析:并发编程(四):AbstractQueuedSynchronizer源码分析二,CyclicBarrier介绍1,线程处理*CyclicBarrier的字面意思就是循环屏障。在一组线程到达循环屏障时阻塞,直到最后一个线程到达屏障时,屏障才会放开,让所有线程执行。该类可以与CountDownLatch进行类比,功能基本一致。不同点在...

2019-10-07 23:55:13

并发编程(九):AQS之Semaphore

一,底层AQS源码分析:并发编程(四):AbstractQueuedSynchronizer源码分析二,Semaphore介绍1,线程访问控制Semaphore也就是我们常说的信号灯,通过初始化的信号量控制同时访问线程的个数。在线程调用acquire()方法时,会获取到一个许可,作为通行证继续进行线程执行,等线程执行完成后,通过调用release()方...

2019-10-07 23:54:40

并发编程(八):AQS之CountDownLatch

一,底层AQS源码分析:并发编程(四):AbstractQueuedSynchronizer源码分析二,CountDownLatch介绍1,线程控制*CountDownLatch是一个同步工具类,允许一个或者多个线程一直等待,直到其他线程的操作执行完毕再执行。从命令可以解读CountDown是倒数的意思,类似于倒计时的概念。在API层面,CountDow...

2019-10-07 23:54:09

并发编程(七):AQS之Condition

一,底层AQS源码分析:并发编程(四):AbstractQueuedSynchronizer源码分析二,Condition介绍1,线程通信*在synchronized中,有分析过通过wait()/notify()/notifyAll()实现线程通信。同样,在JUC中,也提供了这样的工具类,就是Conditon2,类图...

2019-10-07 23:53:11

并发编程(六):AQS之读写锁ReentrantReadWriteLock

一,AQS源码博文:并发编程:AbstractQueuedSynchronizer源码分析二,ReentrantReadWriteLock读写锁介绍1,读写锁介绍ReentrantReadWriteLock虽然与ReentrantLock没有直接关系,但是在功能上算是对ReentrantLock的扩展。在ReentrantLock重入独占锁的功能上,添加了共享锁...

2019-10-07 23:52:24

并发编程(五):AQS之重入锁ReentrantLock

一,AQS源码博文:并发编程:AbstractQueuedSynchronizer源码分析二,ReentrantLock重入锁基本介绍1,类图*从图中可以看到,ReentrantLock是顶层锁接口Lock的实现类,并实现了Lock所定义的关于锁操作的基本API*ReentrantLock内部定义了三个有继承关系的内部类,Sync,F...

2019-10-06 17:18:43

并发编程(四):AbstractQueuedSynchronizer源码分析

一,AQS1,AQS是JUC的核心功能组件,主要通过FIFO双向链表特性对进行park()和unpark()操作来实现线程阻塞和线程唤醒。AQS主要提供了两种功能,独占和共享。*独占锁:独占锁,每次只能有一个线程持有锁,比如ReentrantLock就是以独占方式实现的互斥锁*共享锁:允许多个线程同时持有锁,并发访问共享资源...

2019-09-29 21:17:05

并发编程(三):Volatile关键字

一,一段代码引发可见性思考1,代码片段:从代码可以看出,子线程会一直在循环中阻塞,当主线程已经修改flag的值为true后,子线程并没有对flag值做同步修改。当给flag加上volatile关键字修饰后,则子线程会获取到最新的flag值,并打印出结果(不做演示)packagecom.gupao;/***@authorpj_zhang*@create2019...

2019-09-26 21:00:59

并发编程(二):Synchornized关键字

一,Synchorized语法演示1,类方法演示;静态类同步是对类对象加锁,基于同一类对象的操作都会在阻塞队列等待执行(通过自定义类加载器可以实现类的不同加载)packagecom.gupao.concurrent;/***类同步方法*@authorpj_zhang*@create2019-09-2521:55**/publicclassS...

2019-09-25 21:51:11

并发编程(一):初识多线程及线程通信

一,线程三种启动方式1,Thread方式packagecom.gupao.concurrent;/***@authorpj_zhang*@create2019-09-2421:06**/publicclassStartThreadextendsThread{@Overridepublicvoidrun(){...

2019-09-24 21:00:45

Kubernetes集群搭建:基于Kubeadm

一,环境准备*K8S版本为15.1*Docker版本最高支持18.06.1二,Docker环境构建及替换1,清除原Docker环境,原版本为最新版yumremovedocker\docker-client\docker-client-latest\...

2019-07-28 13:19:33

Docker:DockerFile关键字解析&自定义HelloWorld镜像

一,DockerFile简单执行流程1,创建DockerFile文件,并定义对应的Docker脚本语言2,通过dockerbuild命令执行该DockerFile文件,生成docker镜像3,在docker镜像中通过dockerrun命令启动容器,进行程序访问二,DockerFile关键字1,FROM*基础镜像,当前镜像...

2019-05-27 21:55:33

Docker:数据卷&数据卷容器

一,概念解析1,数据卷:数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹,通过dockerrun-v命令可以将数据卷挂载到对应的容器目录空间,进行文件读取,容器卷特性如下*数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便*对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作*对...

2019-05-27 21:37:56

Docker:常用命令解析

一,Docker命令分类1,帮助命令2,镜像命令3,容器命令二,帮助命令1,docker--help|docker-h:docker指令帮助*注意:任何子节点也可进行指令帮助,eg:dockerrun--help2,dockerversion:docker版本信息查看3,docker...

2019-05-27 21:04:28

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。