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

早期做的网站支持现在的网速吗企业信息门户网站 建设

早期做的网站支持现在的网速吗,企业信息门户网站 建设,中小学校园网站开发技术,哪里可以免费发布招聘信息大家好#xff0c;我是全栈小5#xff0c;欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第1篇文章#xff0c;此篇文章是C#知识点实践序列之Lock知识点#xff0c;博主能力有限#xff0c;理解水平有限#xff0c;若有不对之处望指正#xff01; 本篇验证Lock锁定代… 大家好我是全栈小5欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第1篇文章此篇文章是C#知识点实践序列之Lock知识点博主能力有限理解水平有限若有不对之处望指正 本篇验证Lock锁定代码执行情况锁定外上下代码和锁定区域的代码执行情况。 目录 基本概念锁流程注意点 实践场景锁定代码块效果代码 疑问解答消息队列 常见报错 基本概念 在 C# 中锁lock是一种用于实现多线程同步的机制。 它可以用来确保在任何给定时间只有一个线程可以访问被锁定的代码块以避免数据竞争和并发访问的问题。 流程图 锁流程 1、创建一个共享资源在多个线程之间需要安全地访问该资源。 2、使用 lock 关键字来定义一个临界区域即需要同步的代码段将要访问共享资源的代码放置在该临界区域内。 3、在进入临界区域之前线程会尝试获取锁。如果锁已经被其他线程持有则当前线程会阻塞直到锁释放。 4、当线程得到锁之后它可以安全地访问临界区域内的代码执行完毕后释放锁以便其他线程可以继续执行。 注意点 1、锁定的对象应该是所有线程都可以访问到的共享对象常见的做法是使用一个私有变量作为锁对象。 2、锁的范围应该尽量小只锁定必要的代码区域以避免不必要的线程阻塞。 3、锁的使用应遵循一致的原则即在所有访问共享资源的地方都要使用同一个锁对象。这样可以确保所有线程都按顺序获取锁避免死锁的发生。 实践场景 通过实际例子来验证知识点的基本概念这样能够加深对知识点的理解只有对知识点的理解足够深才能更好的编写高质量代码和实现高效逻辑代码。 锁定代码块 以下是展示代码块被锁定但方法内其他代码仍然按顺序直接执行。 比如同时进行操作点击用户a、用户b、用户c、三个按钮然后都会调用同一个方法方法内只锁定统计数量并且锁定3秒其他代码没有锁定。 效果 从以下界面效果可以知道没有被锁定代码是会先执行然后锁定区域先执行用户a然后锁定3秒后再执行用户b依此类推。 代码 namespace XxxData {public partial class Form1 : Form{public Form1(){InitializeComponent();CheckForIllegalCrossThreadCalls false;}private void Form1_Load(object sender, EventArgs e){}private int visitorCount 0;private void TargetData(string user){txtInfo.AppendText(${user}{DateTime.Now.ToString(yyyy-MM-dd HH:mm:sss)}\r\n);lock (this){visitorCount 1;lbVisitorCount.Text $访问用户数{visitorCount};Thread.Sleep(3 * 1000);txtInfo.AppendText(${user}执行完毕{DateTime.Now.ToString(yyyy-MM-dd HH:mm:sss)}\r\n);}}private void btnA_Click(object sender, EventArgs e){Task.Run(() {TargetData(用户a);});}private void btnB_Click(object sender, EventArgs e){Task.Run(() {TargetData(用户b);});}private void btnC_Click(object sender, EventArgs e){Task.Run(() {TargetData(用户c);});}} }疑问解答 消息队列 Lock锁定代码块是否属于一种消息队列多个访问同时进来只能排队一个一个访问。A执行完Lock方法内的代码才允许下一个执行进来。 并不是C# 的 lock 关键字并不是一种消息队列。它是一种线程同步机制用于在多线程访问共享资源时确保同一时间只有一个线程可以进入被锁定的代码块。 当多个线程同时访问含有 lock 代码块的区域时只有一个线程能够获取到锁进入临界区域执行代码其余线程则被阻塞并排队等待锁的释放。一旦获取到锁的线程执行完毕释放锁后等待队列中的下一个线程会获取锁依此类推。 这种机制确保了同一时间只有一个线程能够访问共享资源避免了数据竞争和并发访问的问题。但请注意锁并不提供先后顺序的保证即不保证等待队列中线程按照某种特定的顺序获取锁。 消息队列是另一种机制用于线程或进程间的通信。它允许将消息从一个线程发送到另一个线程接收线程可以按照消息的先后顺序处理消息实现异步通信和任务分发。而 lock 关键字只是提供了互斥访问的能力并不涉及消息的发送和接收。 常见报错 ##跨线程访问 由于label控件是在主线程在Task线程默认是无法访问 解决方法在异步方法前面增加如下代码 CheckForIllegalCrossThreadCalls false;总结温故而知新不同阶段重温知识点会有不一样的认识和理解博主将巩固一遍知识点并以实践方式和大家分享若能有所帮助和收获这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。
http://www.zqtcl.cn/news/581365/

相关文章:

  • 网站平台建设的重要性响应式网站切图
  • 近期做网站需要什么软件网站制作常见的问题
  • vs做的本地网站甘肃省建设厅门户网站
  • 网站建设合同义务wordpress m1
  • 青海省建设局网站首页wordpress模板建站教程视频
  • 演示 又一个wordpress站点静态页面加wordpress
  • 企业做淘宝客网站有哪些有网站吗给一个
  • 深圳网站制作公司信息之梦与wordpress哪个好用
  • 免费搭建商城网站山西制作网站公司排名
  • 网站开发免费中建建设银行网站
  • 301重定向到新网站在线建站
  • 曰本做爰l网站沙朗做网站公司
  • 广州网站设计智能 乐云践新专家wordpress 头像设置
  • 电子商务学网站建设好吗佛山市手机网站建设企业
  • 为企业做网站电话开场白小说网站的里面的搜索是怎么做的
  • 深圳市设计网站公司自己做网站开网店
  • 智能建站cms管理系统修改wordpress时区
  • 站长怎么添加网站内容重庆网站推
  • 东莞网站建设属于什么专业网页设计代码书
  • 网站后台代码在哪修改wordpress添加搜索小工具
  • 爱站站长工具中国建设监理协会官方网站
  • 珠海微信网站开发东莞网站制作方案定制
  • 大学网站建设说明书记的网站域名
  • 网站如何开通支付功能第一ppt课件免费下载官网
  • 做1元夺宝网站挣钱吗美工网站设计收费
  • 华侨城网站开发wordpress页码颜色
  • 上海建站网络公司制作文字图片
  • 平台型网站制作网站建设张世勇
  • 网站建设云南网页游戏大厅都有哪些
  • 网站建设与管理报告书郑州建设银行网站