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

杭州网站建设杭州常州网约车平台

杭州网站建设杭州,常州网约车平台,南油网站建设,wordpress中文版插件下载/// 线程的资源访问冲突:多个线程同时申请一个资源,造成读写错乱。 /// 解决方案:上锁,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.yayakq.cn/news/154958/

相关文章:

  • 做网站好还是做程序员好微信商城小程序多少钱
  • 萧云建设网站网站怎么做伪静态处理
  • 河南网站网站制作建设网站的虚拟机配置
  • 网站建设勹金手指科捷14wordpress 文章标签
  • 做写手一般上什么网站iis上部署手机网站
  • 中企动力网站建设合同物流网站有哪些
  • wordpress 图片菜单做seo对网站推广有什么作用
  • 做自己看视频的网站做电影网站需要什么手续
  • 查询网站建设时间外贸建站网站建设
  • 北滘企业网站开发wordpress分类页置顶信息
  • 品牌网站建设创意新颖个人开发app需要多少钱
  • 新泰网站设计网络科技公司一般是做什么的
  • 怎么自己建立一个网站后台淮南服装网站建设费用
  • 建一个设计网站要多少钱2核4g 1m做网站
  • 专门做自由行的网站如何制作官方网站
  • 官方网站平台下载返利网网站框架目录
  • 网站建设价位更换wordpress语言包
  • 四川建设行政主管部门官方网站5944免费空间上搭建网站
  • 山西太原网站建设做网站竞价是什么意思
  • 祥云平台技术支持双语网站页面设计风格的主要内容
  • 网站设计规划方案中建卓越建设有限公司网站首页
  • 手机对比网站自己建免费网站
  • 自学做网站要学什么某企业网络营销策略研究论文
  • 深圳网站制作公司讯息东莞网站建设多长时间
  • 学习电子商务网站建设与管理的感想网站的域名和密码
  • 南网站建设 首选搜点网络沈阳网站建设 熊掌号
  • ICP备案不停网站做网页的素材
  • 宽甸县建设局网站投票制作网站
  • 电商网站模板引擎浏览器下载免费安装
  • 哪些人可以做网站怎么给自己网站做搜索框