- 博客(5)
- 收藏
- 关注
原创 JAVA线程-CAS原理
目录1.CAS介绍2.应用场景1.CAS介绍CAS全称为CompareAndSwap,直译为“比较并替换”。其实CAS的应用场景非常多,但实际在开发很难感知到,更多的做为一种思想或底层实现封装起来。常见的如:乐观锁、volatile、AtomicInteger、AtomicBoolean、JUC包的并发实现。2.应用场景假设需要对一个data变量做 100 次“++”操作交由 2 个线程执行,结果会是什么。public class CasTest { pr..
2021-07-03 21:04:20
350
原创 JAVA线程-n线程执行m次++操作结果分析
目录1.前沿2.data++操作分析2.1 data++流程图2.2 4个步骤2.3 工作内存的含义3. 多线程分析3.1 简单场景3.2 分析4. 总结1.前沿假设变量data初始值为0对其执行m次++操作后,其结果为m。但如果是多线程对data执行m次操作其结果会是什么呢?针对这个问题。首先需要理解data++到底做了什么。2.data++操作分析2.1 data++流程图2.2 4个步骤(1)从主内存中读取data数据到工作内
2021-07-01 23:41:14
615
1
原创 Java线程-JUC包同步方法
目录1. CountDownLatch1.1 CountDownLatch介绍1.2 CountDownLatch不足1.3 代码演示2. CyclicBarrier2.1 CyclicBarrier介绍2.2 代码演示3. Semaphore3.1 Semaphore介绍3.2 代码演示1. CountDownLatch1.1 CountDownLatch介绍CountDownLatch是一个同步工具类,用于协调多个线程之间的同步问题。Count
2021-06-28 23:10:50
363
原创 Java线程-知识点归纳
1 能确保线程安全的代码写法?1.1 为什么多线程并发不安全?A:操作系统中进程拥有资源,而线程则不拥有资源。一个进程可以创建多个线程。这些线程共享进程中的资源。当多线程并发执行。对同一个数据进行修改,就可能会造成数据的不一致。线程执行的数据是由“工作内存“”获取的。而工作内存的数据来源与“主内存”。其中工作内存起到的作用类似于“缓存”。假设现在有个任务需将data=0,执行“+1”操作。开启两个线程执行。正常执行的结果data应该为2。实际data存在1 或者 2。原因线程1执行获取的d
2021-06-27 21:31:23
289
原创 Java语言调用JavaScript引擎破解加速乐
本文内容主要了解加速乐生成,通过Java语言调用JavaScript引擎模拟浏览器行为。一、前文因为学习过程中需要数据的原因接触到爬虫,在学习和实践的过程遇到了特别有趣的事。特此记录。直接开始吧!整个爬取的过程:(1)分析浏览器请求。(2)使用Postman模拟用户请求。(3)通过HttpClient编写请求头和参数发送GET、POST的请求。(4)通过Jsoup解析器...
2019-08-24 18:41:01
537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅