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

深圳网站建设好不好坡头网站开发公司

深圳网站建设好不好,坡头网站开发公司,拍照搜索百度识图,网站做edi认证有用没【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 多线程编程一般都会涉及到锁的时候#xff0c;很多人可能觉得很意外#xff0c;为什么会需要这么一个锁。本质上#xff0c;这主要还是因为多线…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 多线程编程一般都会涉及到锁的时候很多人可能觉得很意外为什么会需要这么一个锁。本质上这主要还是因为多线程的执行中本身一部分逻辑并不是原子操作导致的。有一个池塘喂鱼的例子最为经典。假设池塘有两个人同时去喂鱼每一个人喂鱼之前会先看一下池塘边上的牌子。假设牌子是红色的代表已经喂过了假设牌子是绿色的则代表鱼还没有喂过。鱼本身只能吃一顿如果连续喂的话那么鱼可能会撑死。 现在就会出现这么一个情况就是第一个人去喂鱼但是他还没有来得及翻牌子的时候第二个人来继续喂鱼。他一看鱼牌子是绿色的还没有喂那就就会选择继续投料。而他投料的同时并不知道第一个人之前已经投喂过了。所以这个时候鱼就会被撑死了。 所以为了解决这个问题os一般会提供一个锁的机制对于锁里面的操作一定是不能打断的。只有所有操作都完成之后才会释放自己的锁机制。为了解释锁是怎么使用的以及说明如果不用锁的话究竟有什么样的坏处可以通过c# wpf编写一个demo进行说明下。 1、设置界面 界面还是只有一个按钮和一个textbox。按钮下去的时候有两个thread同时递增1000万次查看两个thread递增之后总的数据次数是不是2000万。 Window x:ClassWpfApp.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:sysclr-namespace:System;assemblymscorlibxmlns:localclr-namespace:WpfAppmc:IgnorabledTitleLockSimulationDemo Height480 Width550GridStackPanelButton x:Namebutton ContentStart processing ClickStartButton_Click Height40 Margin5,40/TextBox x:NameResult TextWrappingWrap VerticalScrollBarVisibilityAuto HorizontalScrollBarVisibilityAuto Height200 Margin5//StackPanel/Grid /Window相关界面显示如下 2、代码编写 代码编写主要就是按钮的回调函数。回调函数中主要使用了Thread类、ThreadStart类这两个。线程注册函数是WorkerThreadMethod。创建好两个thread之后就可以将他们start开始执行。 在线程注册函数中会各循环1000万次。之所以会循环这么多次是因为循环次数多了才能看到锁的效果。没有锁的话最终的累加次数不一定是2000万反之有了锁肯定是2000万这就是锁的用处所在。 using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Animation; using System.Threading;namespace WpfApp {public partial class MainWindow : Window{private int total 0;private readonly object _lockObject new object(); // lock for synchronization// construct functionpublic MainWindow(){InitializeComponent();}// button invoke functionprivate void StartButton_Click(object sender, RoutedEventArgs e){Thread newThread1 new Thread(new ThreadStart(WorkerThreadMethod));Thread newThread2 new Thread(new ThreadStart(WorkerThreadMethod));Result.Text ;total 0;button.IsEnabled false;newThread1.Start();newThread2.Start();}// thread entry functionprivate void WorkerThreadMethod(){for (int i 0; i 10000000; i){lock (_lockObject) // critical section{total 1;}}Application.Current.Dispatcher.Invoke(() {Result.AppendText(total.ToString() \n);button.IsEnabled true;});}} }3、实验和验证 验证的话编译没有啥问题直接单击按钮即可。同时这个按钮是可以连续单击即一次结果出来之后可以反复测试的。中间测试的过程中可以通过注释掉lock代码的方式判断注释前后运行结果有没有差异。
http://www.yutouwan.com/news/412804/

相关文章:

  • 传播型网站建设优势有哪些wordpress 是什么呢
  • 做色流网站山东德州做网站
  • 域名转发网站浦口网站建设
  • 百度网站怎么做视频wordpress 统计页面 来路域名
  • 网站收录是什么常用python编程软件
  • 西充企业网站建设网站底部加编码
  • 做网站需要用到什么技术网站设计服务流程
  • 给网站首页图片做外网超链接_为什么会弹出一个服务器登录窗口网站建设公司厦门
  • 广西建设职业技术学院教育网站广州天河区租房哪里便宜
  • 北京备案网站百度seo优化价格
  • 网站跳出率一般是多少黄冈网站推广软件视频下载
  • 课程设计代做网站推荐如何做房地产网站
  • 购物商城网站建设公司江门网络干部学院
  • 做网站要学什么软件wordpress get style ui
  • 佛山建站公司模板企业网站推广形式有
  • 温州网站建设费用一朋友做网站网站被抓了
  • 网站静态和动态区别是什么wordpress 引用 样式
  • 宿州公司做网站中国建设银行福清分行网站
  • 惠州做网站优化dede网站修改
  • 宿州市建设局网站wordpress淘宝插件下载地址
  • 鹤山做网站公司网站如何注册域名
  • 网站备案 非经营长春做个人网站做不了
  • 微网站开发合同郑州网站seo优化
  • 南宁网站开发wordpress的网站是php的代码
  • 湖州网站建设培训wordpress主题套用教程
  • 建设银行的网站是多少企业管理培训课程百度云
  • 设计师网站哪个好网站设计需要多少费用
  • 买网站域名可做区域代理的网站
  • 张家港建设局门户网站东莞专业网站设计专业服务
  • 成都高档网站建设网站描述更改