• Java线程死锁模拟


          本文由广州疯狂软件java培训分享:

      1,关于死锁的理解

      死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。

      2,模拟死锁

      背景介绍:我们创建一个朋友类,当朋友向我们鞠躬的时候,我们也要向朋友鞠躬,这样才算一个完整的动作。当两人同时鞠躬的时候,都在等待对方鞠躬。这时就造成了死锁。

      模拟程序:

      package com.yxy.thread;

      public class Deadlock {

      static class Friend {

      //朋友名字

      private final String name;

      //朋友实体类型的构造方法

      public Friend(String name) {

      this.name = name;

      }

      //获取名字

      public String getName() {

      return this.name;

      }

      //朋友向我鞠躬方法,(同步的)

      public synchronized void bow(Friend bower) {

      System.out.format("%s: %s"

      + " has bowed to me!%n",

      this.name, bower.getName());

      bower.bowBack(this);

      }

      //我回敬鞠躬方法,(同步的)

      public synchronized void bowBack(Friend bower) {

      System.out.format("%s: %s"

      + " has bowed back to me!%n",

      this.name, bower.getName());

      }

      }

      public static void main(String[] args) {

      //死锁模拟程序测试开始

      //创建两个友人alphonse,Gaston

      final Friend alphonse =

      new Friend("Alphonse");

      final Friend gaston =

      new Friend("Gaston");

      //启动两位友人鞠躬的线程。

      new Thread(new Runnable() {

      public void run() { alphonse.bow(gaston); }

      })。start();

      new Thread(new Runnable() {

      public void run() { gaston.bow(alphonse); }

      })。start();

      }

      }

      学IT技术就学Java技术,疯狂软件Java培训机构,打造国内高级Java人才。

      疯狂软件Java培训优势

      1. Java是世界第一大编程语言,市场占有率达20%。

      2.广州最专业Java培训机构,多年教学经验。

      3.学员技术牛就业率最好,就业薪资都在5000以上。

      4.疯狂软件Java培训课程以项目实战带动教学,上课打破传统课堂模式,以实训项目贯穿教学,带领学生一起做企业真实项目。

      疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。高薪从IT名企请来项目经理为学员亲自授课,对学员进行实战教学,在疯狂java,通过大量全真经典企业级项目进行集中培训,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

      疯狂软件中心Java培训、iOS培训打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成至少相当于两年工作经验“全真项目”教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅槃般的重生。 “全真企业环境”模拟:以项目组形式管理,每个程序员(学员)对项目组长负责,组长向项目经理(老师)负责。以版本控制工具为引导,充分激发每个程序员对编程的激情 四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。

  • 相关阅读:
    MOSS中的User的Title, LoginName, DisplayName, SID之间的关系
    如何在Network Monitor中高亮间隔时间过长的帧?
    SharePoint服务器如果需要安装杀毒软件, 需要注意什么?
    如何查看SQL Profiler? 如何查看SQL死锁?
    什么是Telnet
    The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain.
    Windows SharePoint Service 3.0的某个Web Application无搜索结果
    网络连接不上, 有TCP错误, 如果操作系统是Windows Server 2003, 请尝试一下这里
    在WinDBG中查看内存的命令
    The virtual machine could not be started because the hypervisor is not running
  • 原文地址:https://www.cnblogs.com/gojava/p/3587904.html
Copyright © 2020-2023  润新知