zoukankan      html  css  js  c++  java
  • 死锁必须synchronize套synchronize

    package com.Thread;
     
    public class DeathSynchronized {
           public static void main(String[] args) {
                 //资源
                Object g = new Object();
                Object m = new Object();
                 //创建线程
                Test1 t1 = new Test1(g,m);
                Test2 t2 = new Test2(g,m);
                Thread proxy = new Thread(t1);
                Thread proxy2 = new Thread(t2);
                 //启动线程
                proxy.start();
                proxy2.start();
          }
    }
     
    class Test1 implements Runnable {
          Object goods ;
          Object money ;
           public Test1(Object goods, Object money) {
                 this.goods = goods;
                 this.money = money;
          }
     
           @Override
           public void run() {
                 while(true ) {
                       try {
                            test();
                      } catch (Exception e) {
                            e.printStackTrace();
                      }
                }
          }
          
           public void test(){
                 synchronized(goods ){
                       try {
                            Thread. sleep(1000);
                      } catch (InterruptedException e) {
                            e.printStackTrace();
                      }
                       synchronized(money ){
                      }
                      System. out.println("一挥手交钱、、、、" );
                }
          }
          
    }
    class Test2 implements Runnable {
          Object goods ;
          Object money ;
           public Test2(Object goods, Object money) {
                 this.goods = goods;
                 this.money = money;
          }
     
           @Override
           public void run() {
                 while(true ) {
                       try {
                             test();
                      } catch (Exception e) {
                            e.printStackTrace();
                      }
                }
          }
          
           public void test (){
                 synchronized(money ){
                       try {
                            Thread. sleep(5000);
                      } catch (InterruptedException e) {
                            e.printStackTrace();
                      }
                       synchronized(goods ){
                            
                      }
                      System. out.println("一挥手交huo、、、、" );
                }
          }
          
    }
  • 相关阅读:
    bootstrap
    前端框架 angularjs
    JAva集合框架
    圣诞
    IDEA
    科目三
    Bootstrap简介及Bootstrap里的栅格系统col-md/sm/xs-x;
    C# Windows service 定时发邮件功能 (用到webService)
    <转> 数据库索引的作用和优点缺点
    小知识
  • 原文地址:https://www.cnblogs.com/king-/p/4389732.html
Copyright © 2011-2022 走看看