• 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万代码量,达到技术经理的代码掌握量。

  • 相关阅读:
    char , varchar和Nvarchar区别
    练习2-11 计算分段函数[2] (10 分)
    练习2-10 计算分段函数[1] (10 分)
    练习2-9 整数四则运算 (10 分)
    练习2-8 计算摄氏温度 (10 分)
    练习2-6 计算物体自由下落的距离 (5 分)
    练习2-4 温度转换 (5 分)
    练习2-3 输出倒三角图案 (5 分)
    MySQL之Xtrabackup备份与恢复
    MySQL中show语法
  • 原文地址:https://www.cnblogs.com/gojava/p/3587904.html
Copyright © 2020-2023  润新知