文章目录
前言
这篇文章主要通过一个高并发场景,来引出CAS算法的使用以及深入浅出探讨一下CAS底层实现原理,最后会讲解CAS算法在Java中的应用。
模拟一个高并发场景
首先我们模拟一个网站的高并发访问,假设有100个用户,同时请求服务器十次。
public class Demo {
static int count;//记录用户访问次数
public static void request() throws InterruptedException {
//模拟请求耗时5毫秒
TimeUnit.MILLISECONDS.sleep(5);
count++;
}
public static void main(String[] args) throws InterruptedException {
//开始时间
long startTime = System.currentTimeMillis();
int threadSize = 100;
//CountDownLatch类就是要保证完成100个用户请求之后再执行后续的代码
CountDownLatch countDownLatch = new CountDownLatch(threadSize);
for (int i = 0; i < threadSize; i++) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//模拟用户行为,访问10次网站
try{
for (int j = 0; j < 10