JUC
文章平均质量分 86
靠谱的大钊
没啥写, 就这样
展开
-
JUC---线程和进程
JUC-----线程和进程就是为了把我认为的几个好的文章 整理在一起,也就是把链接放在一块而已,已看方便而已!!!,不喜勿喷 哎 赶紧到头吧 记概念 太烦人并发编程相关习题Synchronized底层实现Volatile并发编程相关习题线程的几个状态:NEW 新建状态,线程被创建出来,但尚未启动时的线程状态;RUNNABLE 就绪状态,表示可以运行的线程状态,它可能正在运行,或者是在排队等待操作系统给它分配 CPU 资源;BLOCKED 阻塞等待锁的线程状原创 2021-05-31 21:54:48 · 155 阅读 · 1 评论 -
ThreadLocad--概讲
ThreadLocad底层实现原理1底层实现原理2Threadlocal提供了线程本地变量,它可以保证访问到的变量属于当前线程,每个线程都保存了一个变量的副本,每个线程的变量不同,Threadlocal相当于提供了一种线程隔离,将变量与线程绑定Threadlocal适用于在多线程的情况下,可以实现传递数据,实现数据隔离Threadlocal提供给我们每个线程缓存局部变量Threadlocal基本APINEW Threadlocal(); --创建Threadlocalset 设置当前线程原创 2021-05-25 13:40:34 · 354 阅读 · 1 评论 -
JUC---java锁----悲观与乐观锁,, 公平锁与非公平锁,, 自旋锁(CAS)/重入锁 ,,,重量级锁与轻量级锁,,, 独占锁与共享锁
java有哪些锁的分类:悲观与乐观锁公平锁与非公平锁自旋锁/重入锁重量级锁与轻量级锁独占锁与共享锁文章目录java有哪些锁的分类:乐观锁悲观锁:什么是悲观锁,什么是乐观锁悲观锁:乐观锁:乐观锁的实现方式:一二公平锁与非公平锁公平锁与非公平锁的直接的区别独占锁与共享锁独占锁与共享锁之间的区别可重入性CAS(自旋锁)优点:缺点:Cas 本质的原理:基于 cas 实现锁机制原理Cas 无锁机制原理:实现细节:CAS获取锁:CAS 释放锁:CAS 如何解决 ABA 的问题利用原子类手写 CAS 无锁原创 2021-04-25 21:22:38 · 293 阅读 · 0 评论 -
Votatile--JMM--单例模式
Votatile文章目录VotatileJMMVotatile什么是JMMVolatile保证了可见性不保证原子性避免指令重排指令重排volatile可以避免指令重排单例模式饿汉式DCL懒汉式DCL懒汉式反射破环唯一性解决: 继续加锁但是双反射继续破环继续解决: 采用红略灯经行.加标志进行判定破环: 利用反射破环其私有权限枚举通过读取源码得值,反射不能破环枚举,利用枚举利用枚举注: 枚举的最终反编译源码JMMVotatileVotatile是java虚拟机轻量级的同步机制保证了可见性不保证原子原创 2021-04-23 19:24:46 · 240 阅读 · 2 评论 -
JUC-线程池---四大方法,七大参数,四种拒绝策略...等...{完结}
线程池:文章目录线程池:前言:阻塞队列SynchronousQueue同步队列线程池:什么是线程池:为什么要使用线程池什么是上下文切换那些地方使用到线程池线程池有那些作用线程池的四大创建方式为什么阿里巴巴不建议使用 Executors线程池底层是如何实现复用的`ThreadPoolExecutor`七大核心参数四种拒绝策略线程池如何合理配置参数常见的任务分为两种:CPU密集型任务和IO密集型任务CPU密集型任务(CPU-bound):IO密集型任务(IO-bound):两种任务的线程数设置如下CPU密集型原创 2021-04-22 13:03:53 · 418 阅读 · 0 评论 -
JUC-----Callable--Runnable---常用的辅助类{CountDownLatch,,CyclicBarrier,,Semaphore}
文章目录Callable学习参考链接常用的辅助类(重点)1.CountDownLatch2、CyclicBarrier3. Semaphore补充:信号量与互斥锁之间的区别:Callable前言线程Runnable和Callable的主要区别解决方法:两者区别主要以下两点1.Runnable接口的run()方法没有返回值,而Callable接口的call()方法可以有返回值。2…Runnable接口的run()方法不可以声明抛出异常,而Callable接口的call()方法可以声明抛出异常。原创 2021-04-21 17:32:39 · 197 阅读 · 0 评论 -
JUC--集合安全大全详解
集合安全java中hashmap多线程并发问题详解HashMap多线程操作下的问题总结ConcurrentHashMap & HashTable的知识点LIstpublic class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i = 0; i < 10; i++)原创 2021-04-21 12:34:23 · 195 阅读 · 0 评论 -
生产者与消费者Synchronized--JUC 两版本----Condition简单使用
生产者与消费者Synchronized版本package com.nie.juc.shxf;/* * *@auth wenzhao *@date 2021/4/20 13:15 *//** * 生产者消费者 */public class Demo01 { public static void main(String[] args) { Data data = new Data(); new Thread(() -> {原创 2021-04-21 11:25:52 · 88 阅读 · 0 评论