
多线程
筱筱鹿丸
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并发小小梳理
缓存一致性协议 MESI Ø M(Modified) 修改缓存,当前 CPU 缓存已经被修改,表示已经和内存中的 数据不一致了 Ø I(Invalid) 失效缓存,说明 CPU 的缓存已经不能使用了 Ø E(Exclusive) 独占缓存,当前 cpu 的缓存和内存中数据保持一直,而且其他 处理器没有缓存该数据 Ø S(Shared) 共享缓存,数据和内存中数据一致,并且该数据存在多个 cpu 缓存中 每个 Core 的 Cache 控制器不仅知道自己的读写操作,也监听其它 Cache 的读 写操作,嗅探(原创 2020-10-12 23:24:24 · 252 阅读 · 0 评论 -
ReentrantLock 的实现原理简析
ReentrantLock 的实现原理 在 Lock 中,用到了一个同步队列 AQS,全称AbstractQueuedSynchronizer,它是一个同步工具也是 Lock 用来实现线程同步的核心组件。 AQS 的功能分为两种:独占和共享 独占锁,每次只能有一个线程持有锁,ReentrantLock 就是以独占方式实现的互斥锁。 共 享 锁 , 允 许 多 个 线 程 同 时 获 取 锁 , 并 发 访 问 共 享 资 源 , 比 如ReentrantReadWriteLock。 AQS 队列内部维护的是原创 2020-10-12 21:48:58 · 398 阅读 · 0 评论 -
ABA
aba的问题使用AtomicStampedReference 使用版本号来解决,其实用的还是cas,静态内部类中封装了stamp private 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 · 245 阅读 · 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 · 413 阅读 · 0 评论 -
java中线程同步的理解(非常通俗易懂)
转自https://blog.youkuaiyun.com/qq_39285447/article/details/78995092 Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。 当多个线程同时读写同一...转载 2019-02-22 16:45:10 · 931 阅读 · 1 评论 -
Spring单实例、多线程安全、事务解析
https://blog.youkuaiyun.com/c289054531/article/details/9196053#commentBox转载 2019-02-22 16:47:33 · 189 阅读 · 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 · 131 阅读 · 0 评论 -
Java并发编程:线程池的使用
转自https://www.cnblogs.com/dolphin0520/p/3932921.html 线程池 1)首先,要清楚corePoolSize和maximumPoolSize的含义; 2)其次,要知道Worker是用来起到什么作用的; 3)要知道任务提交给线程池之后的处理策略,这里总结一下主要有4点: 如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,...转载 2019-03-01 16:55:45 · 95 阅读 · 0 评论 -
优雅的终止线程
thread.interrupt(); 线程的终止,并不是简单的调用 stop 命令,stop 方法在结束一个线程时并不会保证线程的资源正常释放,因此会导致程序可能出现一些不确定的状态。 要优雅的去中断一个线程,在线程中提供了一个 interrupt 方法. interrupt 方法 当其他线程通过调用当前线程的 interrupt 方法,表示向当前线程打个招呼, 告诉他可以中断线程的执行了,至...原创 2019-02-20 11:32:04 · 285 阅读 · 0 评论