您现在的位置是:主页 > news > 河南建设安全监督网站/风云榜小说排行榜

河南建设安全监督网站/风云榜小说排行榜

admin2025/4/30 12:12:46news

简介河南建设安全监督网站,风云榜小说排行榜,iis6.0不能新建网站,虚拟商品自动发货网站搭建教程2019独角兽企业重金招聘Python工程师标准>>> CAS的核心操作是比较并交换,具体是假设当前内存位置V的值为A,如果给定的值确实为A那么将新值B设置到内存位置V上,最后总是返回内存位置原有的值。 这是一个典型的读-改-写的操作&#…

河南建设安全监督网站,风云榜小说排行榜,iis6.0不能新建网站,虚拟商品自动发货网站搭建教程2019独角兽企业重金招聘Python工程师标准>>> CAS的核心操作是比较并交换,具体是假设当前内存位置V的值为A,如果给定的值确实为A那么将新值B设置到内存位置V上,最后总是返回内存位置原有的值。 这是一个典型的读-改-写的操作&#…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

CAS的核心操作是比较并交换,具体是假设当前内存位置V的值为A,如果给定的值确实为A那么将新值B设置到内存位置V上,最后总是返回内存位置原有的值。

这是一个典型的读-改-写的操作,并且是原子操作,那可以利用这个特性来构建无锁的线程安全操作。具体的步骤与CAS的核心操作是类似的,只是当CAS操作失败的时候会一直检查失败条件直至成功(注意:这里如果长时间不成功则会占用大量的CPU资源,一种情况就是在“谈谈原子变量与锁的性能比较”中提到的大量线程在激烈竞争的时候会导致更多的竞争)。以数值自增为例:

private static class MyAtomicInteger{
        AtomicInteger ai = new AtomicInteger(0);
        
        public int incrementAndGet(){
            while(true){
                int old =  ai.get();
                int newVal = old+1;
                if(ai.compareAndSet(old, newVal)){
                    return newVal;
                }
            }
        }
    }

虽然AtomicInteger自带该方法,但这里为了说明执行原理。

 

转载于:https://my.oschina.net/u/1268334/blog/3000414