码迷,mamicode.com
首页 > 编程语言 > 详细

<Java><Multi-thread><Lock interface>

时间:2017-06-10 13:54:15      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:优点   返回   on()   介绍   基于   外置   exception   释放   高性能   

Overview

  • 介绍java的lock interface.

Motivation

  • java拥有像synchronized这样的内置锁,那为什么还需要lock这样的外置锁呢?
  • 首先,性能不是选择synchronized或lock的原因,因为jdk6中synchronized的性能已经和lock相差不大。
  • 一般,选择lock是基于lock拥有的以下几个优点(内置锁不具备):
    • 当获取锁时可以有一个等待时间,不会无期限等待下去;
    • 当获取不到锁时,能够响应中断;
    • 可以在多读少写的应用场景中,提高性能;
    • 可以在获取不到锁时,立即返回false,获取到锁时返回true。

Lock Interface

  • public interface Lock{
        void lockInterruptibly() throws InterruptedException;
    
        boolean tryLock();
    
        boolean tryLock(long time, TimeUnit unit) throws InterruptedException;
    
        void unlock();
    
        Condition newCondition();
    }
  • 其中,
    • lockInterruptibly()表面加锁时,当前拥有锁的线程可以被中断;
    • tryLock()则用于尝试获取锁,能获取则返回true,否则返回false;
    • tryLock(long time, TimeUnit unit)与tryLock类似,只是会尝试一段时间;
    • unlock()用于拥有锁的线程释放锁。
  • TBD...

 

<Java><Multi-thread><Lock interface>

标签:优点   返回   on()   介绍   基于   外置   exception   释放   高性能   

原文地址:http://www.cnblogs.com/wttttt/p/6978178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!