
JUC并发
JUC并发相关类
酷学java
这个作者很懒,什么都没留下…
展开
-
死锁命令查看
public class DeadLockDemo { public static void main(String[] args) { String LockA = "lockA"; String LockB = "lockB"; new Thread(new MyThread(LockA,LockB),"A").start(); ...原创 2020-04-04 23:13:44 · 404 阅读 · 0 评论 -
自创锁
自旋锁的由来/** 自旋锁* */public class SpinLockDemo { AtomicReference<Thread> atomicReference = new AtomicReference<>(); //加锁, public void myLock(){ Thread thread = Thr...原创 2020-04-04 22:26:56 · 95 阅读 · 0 评论 -
ForkJoin简介
可以将任务拆分//RecursiveTask 递归任务public class ForkJoinDemo extends RecursiveTask<Long> { private Long start ; private Long end; private Long temp = 1000000L; public ForkJoinDemo...原创 2020-04-04 20:50:34 · 91 阅读 · 0 评论 -
单例模式的升级玩法
1.DCL 双检索模式的懒汉单例模式1.1 第一种public class SingleDemo { private volatile static SingleDemo singleDemo; private SingleDemo(){ //System.out.println(Thread.currentThread().getName()); }...原创 2020-04-04 18:58:01 · 117 阅读 · 0 评论 -
Volatile关键字
1. volatile保证可见性:程序会去主内存读取最新的改变public class JMMDemo { /* * 不加volatile关键字,main线程将num改变,并写回主内存中, * 但是A线程并没有去主内存读取最新的num值,所以线程没有中断 * * volatile:提醒线程A去主内存读取最新值 * */ private...原创 2020-04-04 11:40:14 · 90 阅读 · 0 评论 -
JUC版-线程池
三大方法、七大参数、四种拒绝策略1.三大方法public static void main(String[] args) { //单个线程 // ExecutorService threadPool = Executors.newSingleThreadExecutor(); //固定线程 // ExecutorService t...原创 2020-04-03 10:56:46 · 93 阅读 · 0 评论 -
BlockingQueue阻塞队列
1.什么是阻塞队列写入:当队列满之后,阻塞等待取:当队列为空,阻塞等待生产者创建2.什么时候使用多线程并发处理,线程池原创 2020-04-01 22:57:18 · 115 阅读 · 0 评论 -
读写锁
ReadWriteLock读写锁:更加细粒度的锁读-读:可以共存读-写:不能共存写-写:不能共存JUC的目的,就是将锁的粒度变的更细,提高并发效率;至少读-读,可以共存public class ReadWriteLockDemo { public static void main(String[] args) { //MyCache myCache = n...原创 2020-04-02 12:28:30 · 887 阅读 · 0 评论 -
并发辅助类
1.减计数器-CountDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { //定义:允许一个或多个线程等待直到在其他线程中...原创 2020-04-02 12:24:15 · 117 阅读 · 0 评论 -
集合并发问题
1.ArrayList 是并发不安全的public class ListDemoOne { public static void main(String[] args) { List<String> lists = new CopyOnWriteArrayList<>(); /* **并发下ArrayList...原创 2020-03-30 20:33:19 · 199 阅读 · 0 评论