
并发编程
晓魏
~阳光很好,阳光很暗~
展开
-
并发编程之LockSupport详解以及应用(公平锁)
1.LockSupport基本使用2.LockSupport原理3.LockSupport的应用公平锁原创 2022-04-02 16:25:15 · 518 阅读 · 0 评论 -
并发编程-生产者消费者-阻塞队列版本-详解
1.并发编程-生产者消费者-阻塞队列版本-详解2.回顾synchronzied,Lock版本的多生者-多消费者原创 2022-03-25 20:52:30 · 590 阅读 · 0 评论 -
并发编程-多生产-多消费-总结以及最终版本(生产一组,消费一组)
1.生产者-消费者模型 synchronized版本-Lock版本-LockCondition版本-最终版本2.扩展 生产一组,消费一族原创 2022-03-21 12:32:11 · 416 阅读 · 0 评论 -
并发编程-Lock版本(基础-进阶)-多生产者-多消费者模型
Lock实现多生产者-多消费者模型简单介绍一下Lock:Lock接口的出现替代了同步代码块或者同步函数,将同步的隐式锁操作变成显式的锁操作;同时也可以更加灵活,可以一个锁上增加多组监视器;Condition接口的出现代替了Object中的wait(),notify(),notifyAll()方法,将这些监视器方法进行了封装,变成了Condition监视器对象;有方法await(),signal(),signalAll();为什么要提供监视器对象?为了实现精准唤醒,只唤醒对方的线程,在进阶版代码中将原创 2022-03-21 11:56:23 · 141 阅读 · 0 评论 -
并发编程-synchronzied版本-多生产者-多消费者-模型
1.并发编程口诀2.多生产 多消费者注意的问题3.wait和sleep的区别原创 2022-03-17 18:23:08 · 142 阅读 · 0 评论 -
并发编程-线程安全的原因,解决思路,解决方案(一个有趣的示例)
线程安全的原因,解决思路,解决方案 示例代码有一个有趣的现象,请大家评论区交流原创 2022-03-17 14:56:17 · 89 阅读 · 0 评论 -
java并发编程-死锁原因解决方式以及代码示例
死锁的原因,解决死锁的一般逻辑,死锁代码示例原创 2022-03-16 15:27:15 · 410 阅读 · 0 评论 -
并发编程-银行存钱示例
需求:储户,两个,每个都到银行存钱每次存100,,共存三次 并发编程练练手原创 2022-03-16 12:10:52 · 285 阅读 · 0 评论 -
java中Synchronized和Lock的区别
Synchronized和Lock的区别总结原创 2022-03-15 18:10:36 · 1111 阅读 · 0 评论 -
CountDownLatch() CyclicBarrier(循环栅栏) Semaphore(信号量) 基本使用
这篇文章,给大家介绍一个CountDownLatch CyclicBarrier Semaphore的这三个锁的基本使用情况CountDownLatch:我们可以把CountDownLatch理解为一个计数器,给计数器一个初始值,当计数器的值减少的到0的时候,被wait的线程才开始执行;**CountDownLatch适用的场景是:**适合大任务的拆分,使其并行执行,总的时间取决于最慢任务,总体来说,任务的执行时间大大的减少了;CountDownLatch作用:就是等待其他线程执行完任务,并且必原创 2022-03-14 20:36:34 · 833 阅读 · 1 评论 -
并发修改异常(ConcurrntModificationException)原理及其解决方案
并发修改异常 (ConcurrntModificationException)原理及其解决方案问题演示小伙伴们可以运行一下遍历集合元素的过程中删除元素public void testConcurrentModifyException() throws InterruptedException { List<Integer> list = new ArrayList<>(); list.add(1); list.add(1);原创 2022-03-11 19:07:08 · 3071 阅读 · 4 评论 -
volatile-禁止重排序在单例中应用
volatile功能介绍保证可见性不保证原子性禁止重排序常见的懒汉式的代码到底有什么问题?public class SingletonModel { private static SingletonModel instance = null; private SingletonModel(){ } public static SingletonModel getInstance() { if(instance == null) {原创 2022-03-09 20:56:41 · 178 阅读 · 0 评论 -
并发编程-volatile关键字详解
volatile详解并发编程有三大特性可见行原子性有序性首先说结论:volatile是JVM轻量级的同步机制;保证可见性,不保证原子性,禁止重排序;轻量级是相对于synchronized关键字(三大特性都满足)来说的;补充一下JMM对同步的定义:1.加锁前必须读取主内存中的最新值到工作内存2.解锁前必须把共享变量的值刷新到主内存3.加锁解锁必须是同一把锁volatile-可见性可见性:多个线程访问同一个共享变量的时候,一个线程对共享变量修改后,其他线程立即可见;class So原创 2022-03-09 14:29:30 · 253 阅读 · 0 评论 -
java并发编程之- java内存模型
java并发编程之内存模型(JMM)学习java并发编程,首先要了解java的内存模型(JMM),注意一定要和JVM运行时的内存区域相区别;JMM是一组抽象的概念,并不是真实存在的,他描述的是一组规则或者规范;其实我们脑子里肯定会有一个问题;那就是为什么要有JMM ?用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必原创 2022-03-07 16:07:58 · 229 阅读 · 1 评论