zoukankan      html  css  js  c++  java
  • java多线程 模拟死锁程序

    public class TestDeadLock implements Runnable{
    	public int flag = 1;
    	public static Object o1 = new Object();
    	public static Object o2 = new Object();
    	public static void main(String[] args) {
    		TestDeadLock td1 = new TestDeadLock();
    		TestDeadLock td2 = new TestDeadLock();
    		td1.flag=1;
    		td2.flag=0;
    		Thread t1 = new Thread(td1);
    		Thread t2 = new Thread(td2);
    		t1.start();
    		t2.start();
    
    	}
    
    	@Override
    	public void run() {
    		System.out.println("flag:"+flag);
    		if(flag==1){
    			synchronized(o1){
    				try {
    					Thread.sleep(500);
    				} catch (InterruptedException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    				synchronized(o2){
    					System.out.println("1");
    				}
    			}
    			
    		}
    		else if(flag == 0){
    			synchronized(o2){
    				try {
    					Thread.sleep(500);
    				} catch (InterruptedException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    				synchronized(o1){
    					System.out.println("0");
    				}
    			}
    			
    		}
    		
    	}
    
    }
    


  • 相关阅读:
    Basic GC Tuning
    程序员如何少走弯路,更好的提升技术。
    WPF 多线程
    IOC
    一句话概括WPF知识点
    WPF数据绑定 Binding
    WPF命令
    WPF依赖属性
    WPF路由事件
    WPF绘图和动画
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2988723.html
Copyright © 2011-2022 走看看