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、、、、" );
                }
          }
          
    }
  • 相关阅读:
    windows 安装mongodb数据库
    shell 编程实战
    利用DNAMAN和clusterx绘制序列比对图片
    json与python对象互转
    python:向mongodb中储存数据
    python中登录mongoDB
    如何绘制漂亮的多序列比对图片
    python爬虫的基本框架
    fastqc
    转录与翻译
  • 原文地址:https://www.cnblogs.com/king-/p/4389732.html
Copyright © 2011-2022 走看看