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

360免费建站沈阳市网站

360免费建站,沈阳市网站,网站 建设的售后服务,b2b平台营销/// 线程的资源访问冲突:多个线程同时申请一个资源,造成读写错乱。 /// 解决方案:上锁,lock{执行的程序段}:同一时刻,只允许一个线程访问该程序段。 /// 死锁问题: /// 程序中的锁过多&#xf…

    /// 线程的资源访问冲突:多个线程同时申请一个资源,造成读写错乱。
    /// 解决方案:上锁,lock{执行的程序段}:同一时刻,只允许一个线程访问该程序段。
    /// 死锁问题:
    /// 程序中的锁过多,某一线程需要多个锁资源,而某个资源被另一线程占用,另一个线程同样如此,(谁也不愿先释放资源)形成闭环,线程无法继续进行。
    /// 解决方案:使用调度算法,让某一个被占用的资源被线程释放或关闭某个线程。 

// 资源访问冲突

    class State{private Object _lock = new Object();private int state = 100;private void test(){if(100 == state){Console.Write("state=" + state);}state++;}private void test2(){if (101 == state){Console.Write("state=" + state);}state++;}public void ChangeState(){Thread h = new Thread(test);Thread v = new Thread(test2);// h.Start();// v.Start();// state=100state=100state=101state=100请按任意键继续. . .lock (_lock){h.Start();v.Start();// state=100请按任意键继续. . .// state=100state=101请按任意键继续. . .}}}

// 主程序

    class StateProgram{static void Main(string[] args){State state = new State();for (int i = 0; i < 10; i++){Thread t = new Thread(state.ChangeState);t.Start();}Thread.Sleep(1000);}}

// 死锁

    class Deadlock{Object _lock = new Object();Object _lock2 = new Object();private int flag = 0;public void test(){lock (_lock){Console.WriteLine("我拿到了锁1");lock (_lock2){Console.WriteLine("我拿到了锁2");if(0 == flag){Console.WriteLine("我是第一名");flag = 1;}else{Console.WriteLine("我是第二名");}}}}public void test2(){lock (_lock2){Console.WriteLine("他拿到了锁2");lock (_lock){Console.WriteLine("他拿到了锁1");if (0 == flag){Console.WriteLine("他是第一名");flag = 1;}else{Console.WriteLine("他是第二名");}}}}}

// 主程序

            Deadlock star = new Deadlock();Thread t1 = new Thread(star.test);Thread t2 = new Thread(star.test2);t1.Start();t2.Start();//我拿到了锁1//他拿到了锁2

// 解决方案1:锁同步

    class Deadlock{Object _lock = new Object();Object _lock2 = new Object();private int flag = 0;public void test(){lock (_lock){Console.WriteLine("我拿到了锁1");lock (_lock2){Console.WriteLine("我拿到了锁2");if(0 == flag){Console.WriteLine("我是第一名");flag = 1;}else{Console.WriteLine("我是第二名");}}}}public void test2(){lock (_lock){Console.WriteLine("他拿到了锁2");lock (_lock2){Console.WriteLine("他拿到了锁1");if (0 == flag){Console.WriteLine("他是第一名");flag = 1;}else{Console.WriteLine("他是第二名");}}}}}

我拿到了锁1
我拿到了锁2
我是第一名
他拿到了锁2
他拿到了锁1
他是第二名
请按任意键继续. . . 

// 解决方案2:做标签

    class Deadlock{Object _lock = new Object();Object _lock2 = new Object();private int flag = 0;private int _flag = 0;public void test(){if (0 == _flag){lock (_lock){Console.WriteLine("我拿到了锁1");lock (_lock2){Console.WriteLine("我拿到了锁2");if (0 == flag){Console.WriteLine("我是第一名");flag = 1;}else{Console.WriteLine("我是第二名");}}}}_flag = 1;}public void test2(){if(1 == _flag){lock (_lock2){Console.WriteLine("他拿到了锁2");lock (_lock){Console.WriteLine("他拿到了锁1");if (0 == flag){Console.WriteLine("他是第一名");flag = 1;}else{Console.WriteLine("他是第二名");}}}}}}
            Deadlock star = new Deadlock();Thread t1 = new Thread(star.test);Thread t2 = new Thread(star.test2);t1.Start();Thread.Sleep(1000);t2.Start();

我拿到了锁1
我拿到了锁2
我是第一名
他拿到了锁2
他拿到了锁1
他是第二名
请按任意键继续. . .

http://www.khdw.cn/news/55510.html

相关文章:

  • 织梦网站后台怎么登陆乐天seo培训中心
  • 网站企业备案改个人备案上海专业的seo推广咨询电话
  • vip解析网站如何做肇庆seo外包公司
  • 涉县移动网站建设价格地推平台
  • 遥控器外壳设计网站推荐最新热点新闻事件素材
  • 新疆网站建设介绍google排名
  • 网站建设与web前端区别站内推广的方法和工具
  • 咸阳网站制作建设互联网广告营销
  • 做网站比较专业的有哪些公司友情链接你会回来感谢我
  • 怎么在别人网站上做锚文本链接网络宣传推广方案范文
  • 广州专业网站改版领军企业百度热搜电视剧
  • 什么网站可以做家教怎么快速排名
  • linux 做网站用哪个版本西安网站建设制作公司
  • 网站优化方案书关键词自助优化
  • 驱动开发广州专做优化的科技公司
  • 交城有做网站的吗百度关键词搜索排名统计
  • 网站设计基本功能优化seo
  • 外贸b2b平台哪个最好seo在线培训课程
  • 公司架设网站费用怎么做分录谷歌怎么投放广告
  • 做的好的区块链网站seo技术是什么
  • wordpress无法下载插件windows优化大师是官方的吗
  • 青岛的网站建设公司哪家好电商关键词seo排名
  • 义乌正规外发加工网seo推广营销靠谱
  • 常用网站大全seo 优化技术难度大吗
  • 大兴58网站起名网站制作郑州网站推广报价
  • 衡阳网站优化外包价格搜索引擎优化的报告
  • 刚做的网站怎么在百度搜到手机优化大师怎么退款
  • 输入网站查看空间网站有吗免费的
  • 集团网站建设服务软文推广代表平台
  • 网站下载视频的方法徐州百度运营中心