10-天亮大数据经典JavaSe笔试题系列之构造死锁用例

  • 题目:请构造一个死锁程序。
package com.tl.job005.thread;
/**
* 死锁程序代码示例 原理:在处在一个多线程的环境当中,A线程拿了a资源再等待b资源,B线程拿到了b资源,正在等待获取a资源
* 此时的a,b资源均为共享资源,若不是共享资源,则不存在线程同步问题。
*
* @author zel
*
* @time:2019年3月20日
*/
public class DeadLockTest {
   static class MyThread  extends Thread {
     private int id;
     public static Object  resourceA = new Object();
     public static Object  resourceB = new Object();
     public MyThread(int id) {
        this.id = id;
     }
     @Override
     public void run() {
        if (id == 1) {
          synchronized  (resourceA) {
             System.out.println("我的id=" +  this.id
                  + ",我已经拿到resourceA了,即将请求resourceB!");
             try {
               Thread.sleep(2000);
             } catch  (InterruptedException e) {
               e.printStackTrace();
             }
             synchronized  (resourceB) {
               System.out.println("我的id=" +  this.id
                    + ",我已经拿到resourceB了,即将完成任务!");
             }
          }
        }else if(id==2){
          synchronized  (resourceB) {
             System.out.println("我的id=" +  this.id
                  + ",我已经拿到resourceB了,即将请求resourceA!");
             try {
               Thread.sleep(2000);
             } catch  (InterruptedException e) {
               e.printStackTrace();
             }
             synchronized  (resourceA) {
               System.out.println("我的id=" +  this.id
                    + ",我已经拿到resourceA了,即将完成任务!");
             }
          }
        }
     }
   }
   
   public static void  main(String[] args) {
     Thread t1=new  MyThread(1);
     Thread t2=new  MyThread(2);
     
     t1.start();
     t2.start();
     
     System.out.println("done!!!");
     
   }
}


天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造IT职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。

更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
这里写图片描述
官方-天亮web前端交流-972788995
群二维码:
在这里插入图片描述

欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
在这里插入图片描述

天亮教育大数据官方群318971238,
天亮教育web前端官方群318971238,
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251
教育培训官网:http://myhope365.com
项目研发业务尚云科技官网:http://shangyuninfo.com/
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://myhope365.com/news/index?id=66

猜你喜欢

转载自blog.csdn.net/erliang20088/article/details/89735851
今日推荐