优点:没有获取到锁的线程,会一直处于用户态不会阻塞,没有获取到锁的线程会一直通过循环去重试;
缺点:通过循环重试次数过多会导致CPU资源浪费,所以需要控制循环的次数。
ABA问题:内存中有共享值A,线程1需要将内存值修改为B,线程2需要将内存值修改为A,
解决ABA问题的核心是使用版本号来控制,当版本号不一致时会导致更新失败,每次更新版本号会加1。
CAS实现锁的优缺点以及如何解决ABA问题
最新推荐文章于 2024-08-24 22:01:16 发布
优点:没有获取到锁的线程,会一直处于用户态不会阻塞,没有获取到锁的线程会一直通过循环去重试;
缺点:通过循环重试次数过多会导致CPU资源浪费,所以需要控制循环的次数。
ABA问题:内存中有共享值A,线程1需要将内存值修改为B,线程2需要将内存值修改为A,
解决ABA问题的核心是使用版本号来控制,当版本号不一致时会导致更新失败,每次更新版本号会加1。