Java多线程与并发
shugeShow
我是舒哥,一枚爱折腾的diao丝程序猿!
展开
-
Java多线程与并发_volatile关键字详解
Java多线程与并发_volatile关键字详解仅仅活着是不够的,还需要有阳光、自由,和一点花的芬芳一、volatile关键字volatile是JVM提供的一种轻量级的同步机制,特性:1.保证内存可见性2.不保证原子性3.防止指令重排序二、JMM(Java Memory Model)Java内存模型中规定了所有的变量都存储在主内存中(如虚拟机物理内存中的一部分),每条线程还有自己的...原创 2019-04-12 22:07:22 · 1328 阅读 · 4 评论 -
Java多线程与并发_原子操作类
Java多线程与并发_原子操作类二十多岁的年纪,是一个夹杂着为生活奔忙,疲惫,痛苦和快乐,抑郁,容易想太多,焦虑自己人生能不能成功、混出头的年龄段。要相信明天会更好!一、简介Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。在Atomic包里...原创 2019-04-16 21:10:54 · 309 阅读 · 0 评论 -
Java多线程与并发_CAS详解
Java多线程与并发_CAS详解真正能让你走远的,都是自律、积极和勤奋一、什么是CAS?CAS(CompareAndSwap)比较当前工作内存中的值和主内存中的值,如果相同则执行规定操作,否则继续比较直到主内存与工作内存中的值一致CAS应用CAS有3个操作数,内存值V,旧的预期值A,要修改的更新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做public ...原创 2019-04-17 20:19:34 · 349 阅读 · 0 评论 -
Java多线程与并发_集合类之并发修改异常
Java多线程与并发_集合类之并发修改异常总有一段难熬的日子,让你自我怀疑。不过当你再经历多一点,会发现,那只是生活的常态在平时多线程操作集合类的时候,往往会遇到一些问题一、CopyOnWriteArrayList1.普通java集合类List<String> list = new ArrayList<>(); for (int i = 0; i <...原创 2019-04-18 20:43:11 · 1077 阅读 · 0 评论 -
Java多线程与并发_同步工具类CountDownLatch,CyclicBarrier和Semaphore
Java多线程与并发_CountDownLatch,CyclicBarrier和Semaphore人处在一种默默奋斗的状态,精神就会从琐碎生活中得到升华一、CountDownLatch构造器CountDownLatch(int count) //参数count为计数值主要方法:await():调用await()方法的线程会被挂起,它会等待直到count值为0才继续执行await...原创 2019-04-19 18:43:20 · 273 阅读 · 0 评论 -
Java多线程与并发_Java锁
Java多线程与并发_Java锁累吗?累就对了,说明你还活着一、公平锁与非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。在高并发的情况下,有可能会造成优先级反转或者饥饿现象并发包中ReentrantLock的创建可以指定构造函数boolean类型来得到公平锁...原创 2019-04-19 22:09:23 · 202 阅读 · 0 评论 -
Java多线程与并发_Synchronized和Lock实现生产者消费者模式
Java多线程与并发_Synchronized和Lock实现生产者消费者能自己扛,就别声张一、生产者消费者例子现在两个线程可以操作初始值为零的一个变量,实现一个线程对该变量加1,一个线程对该变量减1交替,来10轮,变量初始值为零二、Synchronized实现/** * @Author: slx * @Date: 2019/4/24 19:09 */public clas...原创 2019-04-24 20:16:45 · 367 阅读 · 0 评论