Thread-1.5

2017-08-16  本文已影响0人  MangoDai

Lock

Java1.5以后添加了Lock类,可以锁定代码,相当于synchronized .

 /** {@code Lock} implementations provide more extensive locking
 * operations than can be obtained using {@code synchronized} methods
 * and statements.  They allow more flexible structuring, may have
 * quite different properties, and may support multiple associated
 * {@link Condition} objects.
 **/
public static void out(String str) {
     int len = str.length();
//    lock.lock();
     for (int i = 0; i < len; i++) {
           System.out.print(str.charAt(i));
     }
    System.out.println();
}
运行结果.png

当我们锁上之后

    static class Output {
        static Lock lock = new ReentrantLock();
        public static void out(String str) {
            int len = str.length();
            lock.lock();
            try {
                for (int i = 0; i < len; i++) {
                    System.out.print(str.charAt(i));
                }
            } catch (Exception e) {
            }finally {
                lock.unlock();
            }
            System.out.println();
        }
    }
上一篇下一篇

猜你喜欢

热点阅读