static void Main(string[] args)
        {
            int a = 20;
            int b = 20;
            int c = 0;

//对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成
            Interlocked.Add(ref c, a);
            System.Console.WriteLine("c: {0}",c);
            //以原子操作的形式递减指定变量的值并存储结果
            Interlocked.Decrement(ref c);
            System.Console.WriteLine("c: {0}", c);
            Interlocked.Increment(ref c);
            System.Console.WriteLine("c: {0}", c);
            //比较两个 32 位有符号整数是否相等,如果相等,则替换其中一个值
            Interlocked.CompareExchange(ref c, a, b);
            System.Console.WriteLine("a: {0},b: {1},c: {2}",a,b,c);

System.Console.ReadLine();
        }

C# Interlocked类的事例相关推荐

  1. 利用反射实现类的动态加载

    为什么80%的码农都做不了架构师?>>>    //首先定义一个接口来隔离类: public interface Operator { // public java.util.Lis ...

  2. C# Interlocked 笔记

    无锁代码下,在读写字段时使用内存屏障往往是不够的.在 64 位字段上进行加.减操作需要使用Interlocked工具类这样更加重型的方式.Interlocked也提供了Exchange和Compare ...

  3. C#多线程编程(6)--线程安全2 互锁构造Interlocked

    在线程安全1中,我介绍了线程同步的意义和一种实现线程同步的方法:volatile.volatile关键字属于原子操作的一种,若对一个关键字使用volatile,很多时候会显得很"浪费&quo ...

  4. C# 原子操作 Interlocked

    前言 焦虑与恐惧,往往是是因为想要的太多,但行动却太少.将目标放低,制定足以达到目标的计划,并付之于一步一个脚印的行动.当你确信你在前进的时候,自然就不会焦虑:当你的行动为你积累了足够多的正向改变的时 ...

  5. java类加入到spring容器_普通java类加入spring容器的四种方式

    今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下. 首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的s ...

  6. 2012-5-3 线程和进程的区别

    进程和线程的区别 http://www.cnblogs.com/lmule/archive/2010/08/18/1802774.html 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. ...

  7. C#与NET实战 第5章 进程、线程与同步 节选

    下来我们将讨论Windows NT/2000/XP操作系统架构下有关进程与线程的基本概念.必须牢记,上一章所介绍的CLR是在启动.NET程序集时,被运行时宿主载入进程的一个软件层. 5.1 简介 进程 ...

  8. C#线程同步的几种方法

    在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳. 一.volatile关键字 volatile是最简单的一种同步方法,当然简单是要付出代价的.它只能在变量一级做 ...

  9. C#多线程学习(四) 多线程的自动管理(线程池) (转载系列)——继续搜索引擎研究...

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

最新文章

  1. 全球芯片行业现状分析:大家都在依赖美国 未来如何破局?
  2. “战狼”无人直升机完成高原靶试
  3. php绑定邮箱地址链接,php完美匹配邮箱、链接地址和电话号码
  4. Tableau实战系列构建基本视图以浏览数据
  5. vue一级分类和耳机分类_?1K411023 岩土分类与不良土质处理方法·2020年一级市政建造师...
  6. python 3.5 3.6 3.7_选择 Python3.6 还是 Python 3.7
  7. IP大时代下,网络枪机技术发展现状
  8. Java 之 JavaScript (一)
  9. hdu2709 Sumsets 递推
  10. teamviewer无法建立连接原因未知_3389远程无法连接的5种原因分析
  11. 【树】判断给定森林中有多少棵树(简单做法)
  12. ipad文献管理软件_【MAC上写论文有哪些好的文献管理软件可以推荐?】-看准网
  13. java导出到txt_Java生成TXT文本并下载
  14. 华为版计算机软件,Huawei华为手机PC客户端软件
  15. 千岛湖2日团建旅行!游览天下第一秀水,感受湖岛遍布的磅礴气势!_团建拓展_嗨牛团建_杭州站...
  16. 使用tvp.player_v2_zepto.js播放腾讯视频
  17. CSS揭秘:5.条纹背景(上)
  18. c# 使用Microsoft.Office.Interop.Excel 对Excel操作
  19. EMWIN电容触摸Touch步骤及注意事项
  20. MySQL 数据库存储引擎

热门文章

  1. 2019计算机学院年会主持稿,2019年学术年会主持稿-范文汇编.doc
  2. 【深度学习】FFA-Net:北大北航提出的图像去雾的新型网络(代码在Github上已开源)
  3. 世界第一台民用计算机,世界上第一台计算机
  4. java 框架GAT_GAT2.0使用文档(组合接口测试)
  5. 解决[FireDAC][DatS]-32. Variable length column [Name] overflow. Value length - [26], column maximum le
  6. Ueditor 图片上传配置
  7. 十大盗版软件你用了几个?
  8. ZJUer必备之西塘自助游攻略…
  9. 微信小程序设计毕业答辩.pptx
  10. 【C语言】分享一些个人C语言程序代码[大一下集合]