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

360免费建站河南省疫情最新情况

360免费建站,河南省疫情最新情况,做自媒体的有哪些素材网站,wordpress导入sql/// 线程的资源访问冲突:多个线程同时申请一个资源,造成读写错乱。 /// 解决方案:上锁,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.hotlads.com/news/3697.html

相关文章:

  • 个人做哪方面网站软考培训机构排名
  • 珠海做网站及推广免费正规的接单平台
  • 网站建设咸阳站长之家点击进入
  • 企业信息化建设方案 网站产品销售推广方案
  • 音乐网站样式设计产品网络推广方案
  • 网站开发课程安排爱站网 关键词挖掘工具站长工具
  • ukidc做电影网站长沙网站制作公司哪家好
  • 网站维护细则谷歌商店下载不了软件
  • 南京医疗网站建设品牌运营策划
  • 重庆企业网站如何推广交换链接适用于哪些网站
  • 网站都有什么类型朋友圈信息流广告投放价格
  • 成为网站建设人员措施网站百度收录查询
  • 北京网站备案公司广州优化营商环境条例
  • wordpress注册无法设置密码东莞百度推广优化公司
  • 怎样做外贸网站建设怎么做一个网站的步骤
  • 网站 建设 现状企业培训方案
  • js网站登录怎么做网络广告投放方案
  • 装备可以卖人民币的手游长沙网站优化方法
  • 品牌型网站的设计网站查询器
  • asp网站表格代码网站排名点击工具
  • 360百度网站怎么做长春网络优化哪个公司在做
  • wordpress站点添加skype网络服务公司
  • wordpress客户端有什么用厦门站长优化工具
  • 做网站维护的是什么公司seo教程书籍
  • 网站后门怎么去除云南疫情最新情况
  • 厦门建设银行招聘网站万网创始人
  • 资讯网站想学销售去哪培训
  • 网站如何做页数百度旅游官网
  • 衡阳网站建设icp备网站关键词优化推广哪家好
  • 珠海手机网站建设seo优化网站优化排名