zoukankan      html  css  js  c++  java
  • About the diffrence of wait timed_wait and block in java

    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;
    
    /**
     * 
     * @author daxin
     *
     */
    public class Main1 {
    
    	static Lock lock = new ReentrantLock();
    
    	public static void main(String[] args) throws Exception {
    
    		// TIMED_WAITING
    		// Thread.sleep(5000*5000);
    
    		// ----------------synchronized---------------------
    		// TIMED_WAITING
    		new Thread(target1, "1").start();
    		Thread.sleep(200);
    		// BLOCKED
    		new Thread(target1, "2").start();
    
    		// ----------------lock------------------
    		// TIMED_WAITING
    		new Thread(target2, "3").start();
    		Thread.sleep(200);
    		// WAITING
    		new Thread(target2, "4").start();
    
    	}
    
    	public static synchronized void get() {
    
    		try {
    			Thread.sleep(5000 * 5000);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
    
    		}
    	}
    
    	public static void get2() {
    
    		try {
    			lock.lock();
    			Thread.sleep(5000 * 5000);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
    			lock.unlock();
    		}
    	}
    
    	static Runnable target1 = new Runnable() {
    
    		@Override
    		public void run() {
    			// TODO Auto-generated method stub
    			get();
    		}
    	};
    
    	static Runnable target2 = new Runnable() {
    
    		@Override
    		public void run() {
    			// TODO Auto-generated method stub
    			get2();
    		}
    	};
    
    }
    
  • 相关阅读:
    python 绘图 线性和绘图区域的设定
    github install
    docker install
    raid详解
    磁盘扩容
    mysql基础
    用jstack自动化捕抓异常java代码脚本
    linux服务器时间同步失败解决方法
    zookeeper集群搭建
    zabbix环境搭建
  • 原文地址:https://www.cnblogs.com/leodaxin/p/7417304.html
Copyright © 2011-2022 走看看