java中lock的同步

java多线程中,我们为了线程的安全问题,会加入一些锁的使用来限制线程。总的来说,线程中的锁有两种模式:locksynchronized。在使用上面lock是更加灵活的,所以是线程安全中需要掌握的内容。下面我们就java中lock进行概念理解,随后带来同步的实例介绍。

1.概述

Lock锁,使用时手动获取锁和释放锁,比synchronized更加灵活;可中断的获取锁;超时获取锁。

Lock 锁的基本用法, l.lock()方法进行上锁, l.unlock()方法进行解锁,如下所示。

Lockl=...;
l.lock();//上锁
try{
//accesstheresourceprotectedbythislock
}finally{
l.unlock();//解锁
}

2.实例

采用Lock,必须主动去释放锁,并且在发生异常时,不会自动释放锁。因此一般来说,使用Lock必须在try{}catch{}块中进行,并且将释放锁的操作放在finally块中进行,以保证锁一定被被释放,防止死锁的发生。通常使用Lock来进行同步的话,是以下面这种形式去使用的:

Locklock=...;
lock.lock();
try{
//处理任务
}catch(Exceptionex){

}finally{
lock.unlock();//释放锁
}
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容