并发编程
文章平均质量分 94
逸Y 仙X
青山一片云雾,心安即是归处。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自定义线程池应用加源码分析
/核心线程数//最大线程数//非核心线程无任务时等待时间//时间单位//阻塞队列BlockingQueue<Runnable> workQueue, //线程池工程ThreadFactory threadFactory, //拒绝策略//校验我们的参数是否合法。原创 2025-02-06 23:56:35 · 756 阅读 · 0 评论 -
并发编程三大特性--原子性
原子性是指一个操作或者是一系列操作是不可以分割或者是被打断的,这些操作必须全部成功,不然就全部失败,在并发编程里,原子性保证了一个线程的操作是不收到另一个线程的影响的。CAS的全程是compare and set /swap 比较并放置/交换 他在替换内存中某一个位置的值是先去比较是否与期望的值相同,如果相同则交换,如果不同就不交换CAS是cpu层面的原语,它保证了并发编程的原子性,在java种,为我们提供Unsafe类去操作他。JVM将方法实现为CAS的汇编指令。原创 2024-10-17 16:00:45 · 1532 阅读 · 0 评论 -
并发编程三大特性--可见性和有序性
可见性是指在数据在收到一个线程的修改时,其他的线程也可以得知并获取修改后的值的属性。这是并发编程的三大特性之一。为了提高cpu的利用率,cpu在获取数据时,不是直接在主内存读取数据,而是在告诉缓存里面,但是在多核CPU下,每个CPU的高速缓存是独立的,也就造成了如果CPU修改自己高速缓存的内容,但是数据没有同步给主内存或这是其他缓存,就造成了数据的不一致。大家都知道我们的java是乱序执行的。但是在多线程的时候,乱序执行就会造成数据的问题。原创 2024-11-03 22:23:12 · 760 阅读 · 0 评论 -
详解ReentrantLock--三种加锁方式
全程为AbstractQueuedSynchronizerAQS中文被称为队列同步器AQS是一个抽象的接口。他是JUC包下的基类。JUC包下的很多功能都是基于AQS实现的。AQS里面维护了一个由volitile修饰的state变量和内置的FIFO队列完成线程的排队和加锁操作。volitile维护的state保证了可见性和有序性,在设置state是,里面提供了compareAndSetState()方法。CAS方式保证了原子性。原创 2024-11-02 22:03:35 · 867 阅读 · 0 评论 -
详解ConditionObject
通俗的语言,入门级的讲解,小编带你一篇文章彻底掌握ConditionObject。原创 2024-11-12 20:37:31 · 821 阅读 · 0 评论 -
阻塞队列系列-ArrayBlockingQueue和LinkedBlockingQueue
阻塞队列(BlockingQueue)是一种特殊的队列,它在插入和移除元素时支持阻塞操作。具体来说,当队列为空时,尝试从队列中获取元素的线程会被阻塞,直到队列中有元素为止;而当队列满时,尝试向队列中添加元素的线程也会被阻塞,直到队列中有空位为止。原创 2024-12-11 16:56:18 · 2103 阅读 · 0 评论
分享