当前位置: 首页 > news >正文

这个网站 做学术检索非常棒外链推广平台

这个网站 做学术检索非常棒,外链推广平台,在美国克罗格做网站怎样,成都企业做网站多少钱lock是一种语言级别的关键字,用于实现线程同步和互斥。它提供了一种简单的方式来确保多个线程不会同时访问共享资源,从而避免竞争条件和数据不一致的问题。 作用: 1、避免并行运算中,共享数据的的读写安全问题; 2、并…

lock是一种语言级别的关键字,用于实现线程同步和互斥。它提供了一种简单的方式来确保多个线程不会同时访问共享资源,从而避免竞争条件和数据不一致的问题。

作用:

1、避免并行运算中,共享数据的的读写安全问题;
2、并行执行时,在锁的位置只有一个程序可以获得锁,其他程序无法获得;
3、锁的出现使得并行执行得地方在锁的位置执行串行;

分类:

1:互斥锁

最常见的锁类型之一。它确保在任何时刻只有一个线程可以访问被保护的资源,其他线程必须等待锁的释放才能继续执行

2:读写锁

允许多个线程同时读取共享资源,但只有一个线程可以写入共享资源

3:自旋锁

一种忙等待的锁,当线程尝试获取锁时,如果发现锁已经被占用,它会一直循环等待直到锁可用

4:条件变量

5:信息量

举个官方的例子:

using System;
using System.Threading.Tasks;public class Account
{//账户余额锁private readonly object balanceLock = new object();//账户余额private decimal balance;public Account(decimal initialBalance) => balance = initialBalance;//扣除金额public decimal Debit(decimal amount){if (amount < 0){throw new ArgumentOutOfRangeException(nameof(amount), "The debit amount cannot be negative.");}decimal appliedAmount = 0;//确保多个线程不能同时修改余额lock (balanceLock){if (balance >= amount){balance -= amount;appliedAmount = amount;}}return appliedAmount;}//存入金额public void Credit(decimal amount){if (amount < 0){throw new ArgumentOutOfRangeException(nameof(amount), "The credit amount cannot be negative.");}lock (balanceLock){balance += amount;}}public decimal GetBalance(){lock (balanceLock){return balance;}}
}class AccountTest
{static async Task Main(){var account = new Account(1000);//创建100个任务并行对账户进行更新var tasks = new Task[100];for (int i = 0; i < tasks.Length; i++){tasks[i] = Task.Run(() => Update(account));}await Task.WhenAll(tasks);Console.WriteLine($"Account's balance is {account.GetBalance()}");// Output:// Account's balance is 2000}static void Update(Account account){decimal[] amounts = [0, 2, -3, 6, -2, -1, 8, -5, 11, -6];foreach (var amount in amounts){if (amount >= 0){account.Credit(amount);}else{account.Debit(Math.Abs(amount));}}}
}

对Blance进行加锁,然后创建100个Taks并行执行任务,保证在获取Balance的时候并不会线程之间混乱存取,保证秩序,当大于0的时候就存款,当小于0的时候就取款,所以最终结果就是2000

http://www.mmbaike.com/news/86035.html

相关文章:

  • 仿京东电商的网站开发精准防控高效处置
  • 长沙专业网站建设怎么做国内新闻
  • 深圳建设网官方网站百度关键词排名qq
  • 搜狗网站录入百度收录哪些平台比较好
  • 收废品做网站优化关键词哪家好
  • 中国做b2b外贸的网站有哪些百度seo优化技术
  • 一个新的网站开发语言互联网外包公司有哪些
  • 郑州微网站建设人工智能培训心得
  • 海南汽车网站建设有什么平台可以推广
  • wordpress后台访问慢seo网站建设是什么意思
  • 网站建设需要的功能淘宝关键词
  • 做网站 域名如何要回网站开发需要哪些技术
  • 中小企业外贸网站建设现状杭州网站建设网页制作
  • 长域名转换短域名深圳网站设计知名乐云seo
  • 网站语言版本公司官网开发制作
  • 临朐门户网短视频seo公司
  • 广州一起做网店属于什么网站360优化大师下载
  • 个人网页制作设计图seo快速排名的方法
  • 全球最好的设计网站百度网址导航
  • 福州做网站建设服务商市场策划方案
  • 龙口做网站通州区网站快速排名方案
  • 怎么做网站seo时空seo助手
  • 建设银行北京分行招聘网站百度关键词指数查询
  • 网站seo步骤游戏推广员上班靠谱吗
  • 做日本外贸网站有哪些windows7系统优化工具
  • 襄阳大摩网站建设互动营销案例100
  • 网站如何优化排名软件推广的方式有哪些
  • 微信小程序网站建设哪家好自媒体推广渠道有哪些
  • 西安网站排名优化培训太原百度seo
  • ipad 网站开发工具山东免费网络推广工具