• java:同步和死锁


    多个线程共享一个资源的时候需要进行同步(否则会出现错误:如负数,重复数),但是过多的同步会造成死锁.

    synchronized(this)

    {

    }

    非同步情况:

    public class SyncThread implements Runnable {
    
    	private int titick = 5;
    	
    	@Override
    	public void run() {
    		// TODO 自动生成的方法存根
    		
    		for(int i = 0; i <50; i++)
    		{
    			
    				if( this.titick > 0 )
    				{
    					//如果遇到延时情况,就会出错
    					try {
    						Thread.sleep(300);
    					} catch (InterruptedException e) {
    						// TODO 自动生成的 catch 块
    						e.printStackTrace();
    					}
    					
    					System.out.println("卖出去第:" + this.titick-- + "张票");
    				}
    			}		
    		
    	}
    
    	
    }
    
    public class Demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		SyncThread st = new SyncThread();
    		new Thread(st, "票贩子A").start();
    		new Thread(st, "票贩子B").start();
    		new Thread(st, "票贩子C").start();
    
    	}
    
    }
    

    结果:

      

    同步情况:

    public class SyncThread2 implements Runnable {
    
    	private int titict = 5;
    	
    	@Override
    	public void run() {
    		// TODO 自动生成的方法存根
    		
    		for(int i = 0; i < 50; i++)
    		{
    			synchronized(this)
    			{
    				if( this.titict > 0)
    				{
    					try {
    						Thread.sleep(300);
    					} catch (InterruptedException e) {
    						// TODO 自动生成的 catch 块
    						e.printStackTrace();
    					}
    					System.out.println("卖出:"+ this.titict--);
    				}
    			}
    		}
    
    	}
    
    }
    
    public class Demo2 {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    
    		SyncThread2 sy2 = new SyncThread2();
    		new Thread(sy2, "票贩子1").start();
    		new Thread(sy2, "票贩子2").start();
    		new Thread(sy2, "票贩子3").start();
    		
    	}
    
    }
    

      结果:

  • 相关阅读:
    其实你的痛苦 跟别人完全没有关系
    一篇很好的“金刚念诵要诀” 首愚法师开示【精华】 [唇齿不动]的过程及要诀
    无我的智慧十五
    随在你:放心的智慧
    利用念头及情绪
    [转载]无我的智慧 第一章 镜中修行
    看到自己真实本性的人
    肯.威尔伯论觉知
    觉醒之光【六】觉醒
    觉醒之光【十一】关系
  • 原文地址:https://www.cnblogs.com/achengmu/p/6158331.html
Copyright © 2020-2023  润新知