![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
筱筱鹿丸
这个作者很懒,什么都没留下…
展开
-
并发小小梳理
缓存一致性协议MESIØ M(Modified) 修改缓存,当前 CPU 缓存已经被修改,表示已经和内存中的数据不一致了Ø I(Invalid) 失效缓存,说明 CPU 的缓存已经不能使用了Ø E(Exclusive) 独占缓存,当前 cpu 的缓存和内存中数据保持一直,而且其他处理器没有缓存该数据Ø S(Shared) 共享缓存,数据和内存中数据一致,并且该数据存在多个 cpu缓存中每个 Core 的 Cache 控制器不仅知道自己的读写操作,也监听其它 Cache 的读写操作,嗅探(原创 2020-10-12 23:24:24 · 150 阅读 · 0 评论 -
ReentrantLock 的实现原理简析
ReentrantLock 的实现原理在 Lock 中,用到了一个同步队列 AQS,全称AbstractQueuedSynchronizer,它是一个同步工具也是 Lock 用来实现线程同步的核心组件。AQS 的功能分为两种:独占和共享独占锁,每次只能有一个线程持有锁,ReentrantLock 就是以独占方式实现的互斥锁。共 享 锁 , 允 许 多 个 线 程 同 时 获 取 锁 , 并 发 访 问 共 享 资 源 , 比 如ReentrantReadWriteLock。AQS 队列内部维护的是原创 2020-10-12 21:48:58 · 302 阅读 · 0 评论 -
ABA
aba的问题使用AtomicStampedReference使用版本号来解决,其实用的还是cas,静态内部类中封装了stampprivate static class Pair<T> { final T reference; final int stamp; private Pair(T reference, int stamp) { this.reference = reference; thi原创 2020-10-12 18:29:50 · 182 阅读 · 0 评论 -
多线程分段处理list集合
多线程分段处理list集合package com.zving.util;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 多线程分段处理List集合 * 场景:大数据List集合,需要对Li转载 2020-10-09 18:14:13 · 344 阅读 · 0 评论 -
java中线程同步的理解(非常通俗易懂)
转自https://blog.csdn.net/qq_39285447/article/details/78995092Java中线程同步的理解我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一...转载 2019-02-22 16:45:10 · 858 阅读 · 1 评论 -
Spring单实例、多线程安全、事务解析
https://blog.csdn.net/c289054531/article/details/9196053#commentBox转载 2019-02-22 16:47:33 · 147 阅读 · 0 评论 -
synchronized代码分析
public class TestSync2 implements Runnable { int b = 100; public static void main(String[] args) throws InterruptedException { TestSync2 tt = new TestSync2();//锁的是实例对象 Thread ...转载 2019-02-27 16:07:13 · 88 阅读 · 0 评论 -
Java并发编程:线程池的使用
转自https://www.cnblogs.com/dolphin0520/p/3932921.html线程池 1)首先,要清楚corePoolSize和maximumPoolSize的含义; 2)其次,要知道Worker是用来起到什么作用的; 3)要知道任务提交给线程池之后的处理策略,这里总结一下主要有4点:如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,...转载 2019-03-01 16:55:45 · 66 阅读 · 0 评论 -
优雅的终止线程
thread.interrupt();线程的终止,并不是简单的调用 stop 命令,stop 方法在结束一个线程时并不会保证线程的资源正常释放,因此会导致程序可能出现一些不确定的状态。要优雅的去中断一个线程,在线程中提供了一个 interrupt 方法.interrupt 方法当其他线程通过调用当前线程的 interrupt 方法,表示向当前线程打个招呼,告诉他可以中断线程的执行了,至...原创 2019-02-20 11:32:04 · 207 阅读 · 0 评论