(22)C# 里使用lock语句
c# 语句 22 lock 使用
2023-09-14 09:10:04 时间
在开发的过程中,经常会遇到多线程的情况,比如一个线程运行界面,一个线程去连接网络,一个线程去保存数据到磁盘。如果不相干的线程运行是不需要锁来同步的,因为各自完成自己的事情就好了。但是也有很多种情况下,需要相互同步运行。比如这样一种情况,有多个线程去取银行帐户里的钱,如果判断有钱的情况下就可以取钱出来,如果没有钱就不能取钱,因为没有钱再取钱就变成负的了。如果有多个线程去取钱,由于多线程是乱序和异步执行,所以至于几个线程都运行了判断有钱的语句,就给系统挂起来了,因此这几个线程都可以继续执行取钱的动作,所以钱就会不够取,从而导致出问题。因此需要把取钱的动作语句变成一个不可以分割的整体执行,这样才能避免多线程执行的错误。
lock语句获取给定对象的互斥锁,执行语句,然后释放该锁。
下面就以银行取钱为例说明C#里使用lock语句的必要性,以及怎么样地使用的过程。
相关文章
- mysql executereader_C# 操作MySQL数据库, ExecuteReader()方法参数化执行T-SQL语句, 游标读取数据…
- C#编写单片机上位机软件-串口通讯(BMS汽车动力电池管理系统)
- C# 正则表达式大全「建议收藏」
- C#中using语句是什么意思「建议收藏」
- c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- C#-ListView的使用
- C# WinForm 界面控件
- c# 多线程并发-金三银四面试:C#.NET面试题高级篇2-多线程
- 通过C#来加载X509格式证书文件并生成RSA对象详解编程语言
- C#打印出正等腰三角形实例代码
- 解析C#中@符号的几种使用方法详解
- C#改变无边框窗体尺寸大小的方法
- .net(c#)中的new关键字详细介绍
- c#的异或运算符介绍
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- C#连接SQL数据库的方法及常用连接字符串
- c#求两个数中最大值的方法
- c#入门之分支语句使用方法(三元运算符、if语句、switch语句)
- C#实现根据字节数截取字符串并加上省略号的方法