02 2022 档案

摘要:一,公平锁和非公平锁 公平锁:先来先执行,不能插队 非公平锁:可以插队,默认是非公平锁 public ReentrantLock() { sync = new NonfairSync(); } public ReentrantLock(boolean fair) { sync = fair ? ne 阅读全文
posted @ 2022-02-03 00:56 陈建江 阅读(27) 评论(0) 推荐(0) 编辑
摘要:一,什么是CAS CAS就是compareAndSet的缩写,他会比较内存中的值是否是期望的值,如果期望的值就执行操作,否则会由于它的底层是自旋锁而等待操作的执行。 public static void main(String[] args) { AtomicInteger atomicIntege 阅读全文
posted @ 2022-02-03 00:15 陈建江 阅读(25) 评论(0) 推荐(0) 编辑
摘要:链接:https://blog.csdn.net/weixin_44841312/article/details/120911816 一,什么是JMM? 它是一种java内存中数据存储的的协议规则:规定了内存是所有线程共有的,每个线程都有自己的工作内存,当进程需要使用数据时会去内存中读取数据放入自己 阅读全文
posted @ 2022-02-02 23:22 陈建江 阅读(56) 评论(0) 推荐(0) 编辑
摘要:一,什么是异步回调? 例如:A在做某个工作,突然碰到一个问题了,A把这个问题交给B去完成,A就可以继续完成工作,等到B完成工作后会通知A,工作的结果。 例如:你在打开某个程序时,使用某些功能可能会因为加载内容而等待很久,此时你可以新开一个窗口,做其它的请求。 二,java中使用异步回调案例 publ 阅读全文
posted @ 2022-02-02 16:34 陈建江 阅读(35) 评论(0) 推荐(0) 编辑
摘要:什么是forkjoin? 就是将单线程下的一个大任务,拆分成多个小任务,将多个小任务派给其它线程执行,最终将所有执行的结果汇总得到最终的结果 本质是:将单线程的大任务转成多线程的小任务,所以对于大任务有效率上的提高。 例如线程1上的任务执行forkJoin后分为了四个任务,这四个任务放在双端队列中等 阅读全文
posted @ 2022-02-02 15:48 陈建江 阅读(38) 评论(0) 推荐(0) 编辑
摘要:具体的使用参考:https://www.cnblogs.com/owenma/p/12207330.html 编写的代码示例: /** * 使用stream完成下面要求: * 1,ID为偶数 * 2,年龄大于23 * 3,用户名转为大写字母 * 4,用户名倒排序 * 5,只输出一个用户 */ @Te 阅读全文
posted @ 2022-02-02 11:45 陈建江 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一,基本介绍 接口 参数 返回值 方法 作用 Function<T, R>函数型接口 T R R apply(T t); 对类型T的参数进行操作,返回类型为R的数据 Predicate<T>断定型接口 T boolean boolean test(T t); 判断传入的参数是否满足某种条件 Cons 阅读全文
posted @ 2022-02-01 22:56 陈建江 阅读(27) 评论(0) 推荐(0) 编辑
摘要:一,概念 池化技术:线程的运行是占用系统资源的,每个线程的诞生都需要有(创建——初始化——使用——销毁)等步骤,为了避免多次重复的创建和销毁线程利用率,提出了池化技术,先创建好进程放到进程池中,如果要使用进程了就从池里面拿来用,用完之后就还回去。这就是池化技术 传统:创建线程——》使用线程——》销毁 阅读全文
posted @ 2022-02-01 13:53 陈建江 阅读(49) 评论(0) 推荐(0) 编辑
摘要:一,java中队列实现的位置(在多线程并发处理,和线程池计算中使用到并发技术) 二,阻塞队列的基本操作:添加,移除元素 代码示例: import org.junit.Test; import java.util.concurrent.ArrayBlockingQueue; import java.u 阅读全文
posted @ 2022-02-01 10:07 陈建江 阅读(53) 评论(0) 推荐(0) 编辑