
JUC并发编程【一点小技巧】
文章平均质量分 85
当谈到Java编程中的并发时,我们通常指的是在多个线程同时执行的情况下如何管理共享资源和确保数据一致性。并发编程在Java中变得非常重要,因为它允许利用多核处理器和提高应用程序的性能。
HGW689
分享,方便他人且成长自己~利他共赢!
展开
-
ArrayList线程不安全和解决方案
ArrayList线程不安全和解决方案原创 2022-06-23 17:27:42 · 701 阅读 · 0 评论 -
Java线程中断机制
Java线程中断机制原创 2022-06-26 20:31:50 · 2583 阅读 · 0 评论 -
Java单例模式
单例模式,即 确保一个类在多线程环境下只有一个实例,并提供一个全局访问点来访问这个唯一实例。单例模式有 饿汉式单例模式、懒汉式单例模式、双检锁单例模式、DCL双端锁 四种。线程安全,一开始就初始化2、懒汉式非线程安全,延迟初始化。3、双检锁线程安全,延迟初始化在单线程环境下(或者说正常情况下),在“问题代码处”,会执行如下操作,保证能获取到已完成初始化的实例但在多线程环境下,在“问题代码处”,可能会执行如下操作,由于重排序导致 2,3 乱序,后果就是其他线程得到的是null而不是完成初始化的原创 2022-06-28 18:46:30 · 197 阅读 · 0 评论 -
Java内存模型(Java Memory Molde,JMM)
Java内存模型(Java Memory Molde,JMM)原创 2022-06-27 16:25:06 · 2264 阅读 · 0 评论 -
Java并发之 AQS
AQS,通常指的是 java.util.concurrent 下locks包内的 `AbstractQueuedSynchronizer` 类。类如其名,**抽象的队列式的同步器**,AQS定义了==一套多线程访问共享资源的同步器框架==,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。...........................原创 2022-07-02 22:30:52 · 911 阅读 · 1 评论 -
多线程-异步编排
多线程-异步编排原创 2022-06-24 20:07:35 · 3921 阅读 · 0 评论 -
Java中的volatile
volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。为了能比较清晰彻底的理解volatile,我们一步一步来分析。首先来看看如下代码上面这个例子,模拟在多线程环境里,t1线程对flag共享变量修改的值能否被t2可见,即是否输出 “-----flag被设置为原创 2022-06-28 00:31:25 · 25633 阅读 · 12 评论 -
ThreadLocal会用可不够
ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。通俗点说:ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。......原创 2022-07-02 00:26:39 · 492 阅读 · 0 评论 -
CAS机制
CAS的全称是 Compare And Swap(比较再交换,确切一点称之为:比较并且相同再做交换)是现代CPU广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。CAS的作用是:CAS可以将比较和交换转换为原子操作,这个原子操作直接由处理器CPU保证。(可以看做是一个轻量级的synchronized,它能保证变量修改的原子操作)CAS指令需要有三个操作数,分别是:它是一种CPU并发原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必须是连续的,在执行过程原创 2022-06-29 00:23:37 · 4435 阅读 · 1 评论 -
AQS为什么采用双向链表?
双向链表支持双向遍历,插入和删除更加灵活。原创 2024-08-07 09:58:43 · 713 阅读 · 0 评论