
并发
Java并发
住手丶让我来
我是革命一块砖,哪里需要哪里搬!
展开
-
高并发编程之AtomicInteger讲解
一、AtomicInteger介绍①.支持原子操作的Integer类②.主要用于在高并发环境下的高效程序处理。使用非阻塞算法来实现并发控制二、AtomicInteger的常用的方法①.get()方法:获取当前value的值,无锁package chapter3.atomicinteger;import java.util.concurrent.atomic.AtomicInteger;...原创 2019-02-17 16:50:33 · 10594 阅读 · 0 评论 -
高并发编程之生产者—消费者设计模式
一、生产者—消费者模式介绍生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。二、为什么要使用生产者和消费者模...原创 2019-02-16 22:49:05 · 6831 阅读 · 0 评论 -
高并发编程之Thread-Per-Message设计模式
一、Thread-Per-Message设计模式介绍Thread-Per-Message模式是说为每个请求都分配一个线程,由这个线程来执行处理,使得消息能够并发(但是注意:线程的创建是有限的,可以使用线程池来处理,超过数量则加入等待队列),这里包含两个角色,请求的提交线程和请求的执行线程。二、场景模拟就好比电话接线员一样,每一个电话投诉或业务处理,都会有对应的人员来处理,若打不进,则等待三...原创 2019-02-16 21:42:16 · 245 阅读 · 0 评论 -
高并发编程之CountDown设计模式(CountDownLatch讲解)
一、CountDownLatch介绍CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了任...原创 2019-02-16 21:13:39 · 1353 阅读 · 1 评论 -
高并发编程之上下文设计模式(使用ThreadLocal实现)
一、上下文设计模式简介上下文就是贯穿整个系统或者阶段生命周期的对象,其中存贮了一些系统的全局变量信息。在很多时候,单个线程的执行任务步骤非常多的时候,后面的某一步骤需要前面的输出值(责任链模式中特别多),那么需要将参数从头传递到尾,这样会特别的麻烦,并且在参数过多的情况下更加不合适,那么这个时候就需要一个上下文作为上下文进行绑定线程传递了的.java为我们提供了一个很好的容器,就是ThreadL...原创 2019-02-15 23:13:27 · 3168 阅读 · 0 评论 -
高并发编程之保护性暂挂模式
一、简介Guarded Suspension Design Pattern(保持性暂挂模式)意为保护暂停,其核心思想是仅当服务进程准备好时,才提供服务。当线程在访问某个对象时,发现条件不满足,就暂时挂起等待条件满足时再次访问。二、Guarded Suspension Design Pattern 模式的结构Guarded Suspension模式的主要成员有:Request、RequestQ...原创 2019-02-15 18:02:23 · 764 阅读 · 0 评论 -
高并发编程之不可变对象设计模式
一、Immutable介绍不可变对象永远不会发生改变,其字段的值只在构造函数运行时设置一次,其后就不会再改变。例如JDK中常见的两种基本数据类型String和Integer,它们都是不可变对象。二、Immutable的设计原则(需要满足的条件)①.确保类不会被覆写,即该类不会被继承,实现这一点要加上修饰符final;或者使用静态工厂创建方法,确保构造函数私有的。②.所有的字段必须是私有的,...原创 2019-02-15 08:37:59 · 263 阅读 · 0 评论 -
高并发编程之读写锁分离设计模式
一、简介1.读写锁:在同一时刻允许多个读线程访问,但是当写线程访问,所有的写线程和读线程均被阻塞。读写锁维护了一个读锁加一个写锁,通过读写锁分离的模式来保证线程安全,性能高于一般的排他锁。2.读写锁分离设计模式有两种名称:①.ReadWritLock Design Pattern②Reader-Writer Design Pattern3.Reader-Writeer Design Pa...原创 2019-02-15 00:33:47 · 352 阅读 · 0 评论 -
高并发编程之单线程执行设计模式
一、介绍我们模拟一个场景:多个游客要验证身份通过一道门三个类:1.Gate:相当于一个资源 调用一个方法pass 方法2.User 是使用资源的地方,也就是每一个用户,或者说是通过门的游客3.SingleClient 当User跑起来的时候不断的使用这个资源二、代码实现①.Gate类package chapter2.singlegate;/** * @author czd...原创 2019-02-14 22:01:05 · 312 阅读 · 0 评论 -
Executors框架创建线程池
一、线程池的简介线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。二、图解线程池的流程三、线程池的六个基本要素(1).任务队列:用来存放多余的任务,例如有10个任务交给线程池处理,但是线程池一次性只能有6个线程处理任务,那多出来的4个任务就放在任务队列中。...原创 2019-02-11 17:41:03 · 331 阅读 · 1 评论