04 2022 档案
归并求小和
摘要:public class SmallSum { public static int sum=0; public static void main(String[] args) { //int[] arr={1,3,4,2,5}; int[] arr={1,3}; process(arr,0,arr. 阅读全文
posted @ 2022-04-30 12:05 upupup-999 阅读(24) 评论(0) 推荐(0) 编辑
递归求最值
摘要:public class RecSort { public static void main(String[] args) { int[] arr={3,1,5,2,4,-1}; int rec = rec(arr, 0, arr.length - 1); System.out.println(re 阅读全文
posted @ 2022-04-29 17:05 upupup-999 阅读(20) 评论(0) 推荐(0) 编辑
归并排序
摘要:public static void main(String[] args) { int[] arr={3,1,5,2,4,-1}; rec(arr,0,arr.length-1); for (int i : arr) { System.out.println(i); } } public stat 阅读全文
posted @ 2022-04-29 17:04 upupup-999 阅读(12) 评论(0) 推荐(0) 编辑
15.锁绑定多个条件Condition
摘要:1.代码 package com.mydemo; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Reentr 阅读全文
posted @ 2022-04-13 23:27 upupup-999 阅读(38) 评论(0) 推荐(0) 编辑
14.线程通信之生产者消费者传统版(lock, await, signal)
摘要:1.代码 package com.mydemo; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Reentr 阅读全文
posted @ 2022-04-13 22:53 upupup-999 阅读(35) 评论(0) 推荐(0) 编辑
13.BlockingQueue
摘要:1.BlockingQueue的核心方法 2.阻塞超时放弃演示 package com.mydemo; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import 阅读全文
posted @ 2022-04-12 23:04 upupup-999 阅读(22) 评论(0) 推荐(0) 编辑
12.Semaphore
摘要:1.定义 信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制 正常的锁(concurrency.locks或synchronized锁)在任何时刻都只允许一个任务访问一项资源,而 Semaphore允许n个任务同时访问这个资源。 模拟一个抢车位的场景,假设一共有6个 阅读全文
posted @ 2022-04-12 22:05 upupup-999 阅读(20) 评论(0) 推荐(0) 编辑
11.CyclicBarrier
摘要:1.定义 CyclicBarrier的字面意思就是可循环(Cyclic)使用的屏障(Barrier)。它要求做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活,线程进入屏障通过CyclicBarrier的await 阅读全文
posted @ 2022-04-11 23:36 upupup-999 阅读(29) 评论(0) 推荐(0) 编辑
10.CountDownLatch
摘要:1.定义 让一线程阻塞直到另一些线程完成一系列操作才被唤醒。 CountDownLatch主要有两个方法(await(),countDown())。 当一个或多个线程调用await()时,调用线程会被阻塞。其它线程调用countDown()会将计数器减1(调用countDown方法的线程不会阻塞), 阅读全文
posted @ 2022-04-11 23:24 upupup-999 阅读(27) 评论(0) 推荐(0) 编辑
9.java锁之读写锁代码验证
摘要:1.实现一个读写缓存的操作,假设开始没有加锁的时候,会出现什么情况 import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; class MyCache { private volati 阅读全文
posted @ 2022-04-11 23:11 upupup-999 阅读(48) 评论(0) 推荐(0) 编辑
8.java锁之自旋锁代码验证
摘要:package com.mydemo; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import static java.lang.Thread.currentTh 阅读全文
posted @ 2022-04-10 23:50 upupup-999 阅读(48) 评论(0) 推荐(0) 编辑
7.java锁之可重入锁和递归锁代码验证 Synchronized以及ReentrantLock可重入锁演示程序
摘要:1.可重入锁(也叫做递归锁) 指的是同一线程外层函数获得锁之后,内层递归函数仍然能获取该锁的代码,在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。 也即是说,线程可以进入任何一个它已经拥有的锁所同步着的代码块。 ReentrantLock/synchronized就是一个典型的可重入 阅读全文
posted @ 2022-04-07 23:40 upupup-999 阅读(65) 评论(0) 推荐(0) 编辑
5.集合类不安全之Set
摘要:package com.mydemo; import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.UUID; import java.util.concurrent.C 阅读全文
posted @ 2022-04-07 23:00 upupup-999 阅读(23) 评论(0) 推荐(0) 编辑
6.集合类不安全之Map
摘要:package com.mydemo; import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class MapNotSafeDemo { public static void main(String[] 阅读全文
posted @ 2022-04-07 23:00 upupup-999 阅读(19) 评论(0) 推荐(0) 编辑
4.集合类不安全之并发修改异常
摘要:1.list不安全 package com.mydemo; import java.util.ArrayList; import java.util.UUID; import java.util.Vector; import java.util.concurrent.CopyOnWriteArray 阅读全文
posted @ 2022-04-06 23:16 upupup-999 阅读(27) 评论(0) 推荐(0) 编辑
3.CAS源码探索
摘要:1.Compare And Set 示例程序 package com.mydemo; import java.util.concurrent.atomic.AtomicInteger; public class CASDemo { public static void main(String[] a 阅读全文
posted @ 2022-04-05 23:11 upupup-999 阅读(79) 评论(0) 推荐(0) 编辑
2.volatile不保证原子性
摘要:package com.mydemo; public class MyData2 { volatile int number=0; public void addPlusPlus() { number ++; } } class VolatileAtomicityDemo { public stat 阅读全文
posted @ 2022-04-05 21:09 upupup-999 阅读(24) 评论(0) 推荐(0) 编辑
1.可见性的代码验证说明
摘要:1.在修改完number值以后,while循环并没有检查到 package com.mydemo; import java.util.concurrent.TimeUnit; public class MyData { public int number=0; public void add_to_ 阅读全文
posted @ 2022-04-05 20:35 upupup-999 阅读(31) 评论(0) 推荐(0) 编辑




点击右上角即可分享
微信分享提示