- 博客(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
121
原创 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
416
原创 Java线程-JUC包同步方法
目录 1. CountDownLatch 1.1 CountDownLatch介绍 1.2 CountDownLatch不足 1.3 代码演示 2. CyclicBarrier 2.1 CyclicBarrier介绍 2.2 代码演示 3. Semaphore 3.1 Semaphore介绍 3.2 代码演示 1. CountDownLatch 1.1 CountDownLatch介绍 CountDownLatch是一个同步工具类,用于协调多个线程之间的同步问题。 Count
2021-06-28 23:10:50
105
原创 Java线程-知识点归纳
1 能确保线程安全的代码写法? 1.1 为什么多线程并发不安全? A: 操作系统中进程拥有资源,而线程则不拥有资源。一个进程可以创建多个线程。这些线程共享进程中的资源。当多线程并发执行。对同一个数据进行修改,就可能会造成数据的不一致。 线程执行的数据是由“工作内存“”获取的。而工作内存的数据来源与“主内存”。其中工作内存起到的作用类似于“缓存”。假设现在有个任务需将data=0,执行“+1”操作。开启两个线程执行。正常执行的结果data应该为2。实际data存在1 或者 2。原因线程1执行获取的d
2021-06-27 21:31:23
112
原创 Java语言调用JavaScript引擎破解加速乐
本文内容主要了解加速乐生成,通过Java语言调用JavaScript引擎模拟浏览器行为。 一、前文 因为学习过程中需要数据的原因接触到爬虫,在学习和实践的过程遇到了特别有趣的事。特此记录。直接开始吧! 整个爬取的过程: (1)分析浏览器请求。 (2)使用Postman模拟用户请求。 (3)通过HttpClient编写请求头和参数发送GET、POST的请求。 (4)通过Jsoup解析器...
2019-08-24 18:41:01
377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人