• 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();
    		}
    	};
    
    }
    
  • 相关阅读:
    curl continue
    actor
    nginx
    jmx additional port
    diff
    lsof
    zk reconnect
    Python:Python基础(一)
    Python:初识Python(二)
    Python:初识Python(一)
  • 原文地址:https://www.cnblogs.com/leodaxin/p/7417304.html
Copyright © 2020-2023  润新知