• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中volatile与lock用法

C#中volatile与lock用法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#中volatile,c#volatile,c#volatile关键字,volatile的用法,java volatile用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#中volatile与lock用法,分享给大家供大家参考。具体分析如下:

一、C#中volatile

volatile是C#中用于控制同步的关键字,其意义是针对程序中一些敏感数据,不允许多线程同时访问,保证数据在任何访问时刻,最多有一个线程访问,以保证数据的完整性,volatile是修饰变量的修饰符。

1、volatile的使用场景

多个线程同时访问一个变量,CLR为了效率,允许每个线程进行本地缓存,这就导致了变量的不一致性。volatile就是为了解决这个问题,volatile修饰的变量,不允许线程进行本地缓存,每个线程的读写都是直接操作在共享内存上,这就保证了变量始终具有一致性。

2、volatile 关键字可应用于以下类型的字段

① 引用类型

② 整型,如 sbyte、byte、short、ushort、int、uint、char、float 和 bool。

③ 具有整数基类型的枚举类型。

④ 已知为引用类型的泛型类型参数。

⑤ 不能将局部变量声明为 volatile。

二、C#中lock

1、lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。此语句的形式如下:

lock (thisLock)
{
    // Critical code section
}</div>

2、lock确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它就会被阻止,直到该对象被释放。也就是说在用到临界资源,确保线程可以排队进入执行临界区中的方法。

3、lock的使用场景

多个线程同时访问一个代码块,使用lock 修饰该代码块,强制多个线程进行排队,一个接一个的去访问。

通常,应避免锁定 public 类型,否则实例将超出代码的控制范围。最佳做法是定义 private 对象来锁定, 或 private static 对象变量来保护所有实例所共有的数据。

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#中volatile与lock用法

相关文章

  • 2017-05-28C#中比较常用的DateTime结构的使用方法
  • 2017-05-28日常收集C#接口知识(知识全面)
  • 2017-05-28浅析C#中的Main(String[] args)参数输入问题
  • 2017-05-28深入多线程之:深入分析Interlocked
  • 2017-05-28C#基础知识 全面解析可空类型
  • 2017-05-28C#获取路径的几种方式实例分析
  • 2017-05-28C#实现复制文件夹中文件到另一个文件夹的方法
  • 2017-05-28C#中抽象方法与虚拟方法的区别
  • 2017-05-28C#实现Array添加扩展实例
  • 2017-05-28c#获取相同概率随机数的算法代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c#日期间隔计算示例
    • Winform学生信息管理系统各子窗体剖析(3)
    • C#验证控件validator的简单使用
    • c# 适配器模式
    • C#中查找Dictionary中的重复值的方法
    • C#获取文件夹及文件的大小与占用空间的方法
    • C#词法分析器之词法分析的使用详解
    • C#实现获取MAC地址的方法
    • C#基于纯数学方法递归实现货币数字转换中文功能详解
    • c#操作iis根目录的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有