![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java多线程
Java多线程
King 4 ray
静坐常思己过,闲谈莫论人非。
展开
-
ThreadLocal(未完)
ThreadLocal原创 2020-11-09 13:18:21 · 607 阅读 · 0 评论 -
synchronized(未完)
SynchronizedSynchronized最大的特征就是在同一时刻只有一个线程能够获得对象的监视器(monitor),从而进入到同步代码块或者同步方法之中,即表现为互斥性(排它性)。执行过程中会进行锁升级lock CompxchgSynchronized和Lock(ReentrantLock)的区别:1.Synchronized 是Java内置关键字,Lock 是一个类;2.Synchronized 无法判断获取锁的状态,Lock 可以判断是否获取到了锁;3.Synchronized 会自原创 2020-11-07 15:59:10 · 90 阅读 · 0 评论 -
常用原子类和多线程辅助类(未完)。
AtomicInteger主要方法包括incrementAndGet() 自增并返回自增后的结果getAndIncrement() 自增并返回自增前的结果decrementAndGet() 自减并返回自减后的结果getAndDecrement() 自减并返回自减前的结果getAndSet(int newValue) 设置为新值并返回旧值getAndAdd(int value) 和参数相加并返回旧值addAndGet(int value) 和参数相加并返回新值底层均是调用 c原创 2020-11-06 21:33:51 · 73 阅读 · 0 评论 -
线程池八股文。
线程池:三大方法,7大参数,四大拒绝策略三大方法:Executors.newSingleThreadExecutor();–创建一个线程的线程池Executors.newFixedThreadPool(int n);–创建指定线程的线程池Executors.newCachedThreadPool();–创建可缓存的线程池七大参数:ThreadPoolExecutor(int corePoolSize, //核心线程池大小int maximumPoolSize, //最大核心线程池大小l原创 2020-11-06 21:05:39 · 543 阅读 · 0 评论 -
多线程之sleep、wait...
Interrupted、join、wait/notify、sleep、yieldinterrupted中断可以理解为线程的一个标志位,它表示了一个运行中的线程是否被其他线程进行了中断操作。中断好比其他线程对该线程打了一个招呼。其他线程可以调用该线程的interrupt()方法对其进行中断操作,同时该线程可以调用isInterrupted()来感知其他线程对其自身的中断操作,从而做出响应。另外,同样可以调用Thread的静态方法interrupted()对当前线程进行中断操作,该方法会清除中断标志位。需要原创 2020-11-06 15:56:35 · 228 阅读 · 0 评论 -
对并发编程的浅显理解。
文章目录前言1.多核CPU缓存架构:2.什么是指令重排序? 2.1重排序的分类:3多线程的特性前言 如今遍地多线程高并发,多线程高并发不止是软件层面的支持,还少不了硬件层面的进步。本文是个人对多线程相关基础的愚见,仅供参考。1.多核CPU缓存架构: 由于CPU处理速度远大于主内存,为了解决速度差异,增加了多级缓存,L1/L2/L3;MESI(CPU缓存一致性协议),保证了每个缓存中使用的共享变量的副本是一致的。2.什么是指令重排序? 在执行程序时,为了提高性能,程序指令的执行顺序有可能和原创 2020-11-03 23:15:39 · 100 阅读 · 0 评论 -
JAVA基础-[多线程]面试必问之volatile。
1.volatile是什么 volatile是一个关键字,不仅仅JAVA中有。此文主要针对JAVA进行解释。2.请谈谈你对volatile的理解原创 2020-11-03 21:41:23 · 125 阅读 · 0 评论 -
volatile前置知识点——内存模型、内存屏障。
原创 2020-11-03 21:25:04 · 169 阅读 · 0 评论 -
多线程基础之AQS(未完)。
1.概念 AQS(AbstractQueuedSynchronizer):AQS是一个抽象类,提供了很多公用的方法供子类调用,原创 2020-11-02 21:18:44 · 65 阅读 · 0 评论 -
各种锁的浅显理解。
1.乐观锁和悲观锁2.公平锁和非公平锁3.可重入锁和不可重入锁4.共享锁和独享锁(排它锁)5.无锁、偏向锁、轻量级锁和重量级锁原创 2020-11-02 16:36:58 · 113 阅读 · 1 评论 -
多线程基础之CAS。
1.概念 CAS(Compare and Swap):CAS又称“自旋锁”、“无锁”,是一种乐观锁策略,解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。 AtomicInteger等原子类就是基于CAS实现的。2.缺点 1)ABA问题:如果另一个线程修改V值假设原来是A,先修改成B,再修改回成A。当前线程的CAS原创 2020-10-09 23:15:35 · 252 阅读 · 0 评论 -
多线程基础之创建方式。
面试造火箭,入职拧螺丝。用不用的到,面试基本都会问多线程相关知识。 此文,用以介绍线程的创建方式。我相信有不少初学者和我刚学的时候一样,很懵逼,为啥不调用run方法,而要调用start呢?答:run方法只是Thread的一个普通方法,你直接调用的话,仅仅是调用一个方法,不会开辟一个线程;start方法底层是调用了native的start0,也就是说调用了本地方法去开辟一个线程,其实是native方法回调run方法的。public synchronized void start() {原创 2020-09-26 20:56:54 · 119 阅读 · 0 评论