Java并发编程中,Lock锁与条件变量有何区别与联系?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3618个文字,预计阅读时间需要15分钟。
简单使用Lock机制——Java 5中引入了新的锁机制——java.util.concurrent.locks中的显式互斥锁——Lock接口,它提供了比synchronized更广泛的锁操作。Lock接口,它提供了比synchronized更丰富的锁操作。
Lock接口有三个实现类:ReentrantLock、ReentrantReadWriteLock。
简单使用Lock锁
Java 5中引入了新的锁机制——java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作。Lock接口有3个实现它的类:ReentrantLock、ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁、读锁和写锁。lock必须被显式地创建、锁定和释放,为了可以使用更多的功能,一般用ReentrantLock为其实例化。为了保证锁最终一定会被释放(可能会有异常发生),要把互斥区放在try语句块内,并在finally语句块中释放锁,尤其当有return语句时,return语句必须放在try字句中,以确保unlock()不会过早发生,从而将数据暴露给第二个任务。
本文共计3618个文字,预计阅读时间需要15分钟。
简单使用Lock机制——Java 5中引入了新的锁机制——java.util.concurrent.locks中的显式互斥锁——Lock接口,它提供了比synchronized更广泛的锁操作。Lock接口,它提供了比synchronized更丰富的锁操作。
Lock接口有三个实现类:ReentrantLock、ReentrantReadWriteLock。
简单使用Lock锁
Java 5中引入了新的锁机制——java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作。Lock接口有3个实现它的类:ReentrantLock、ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁、读锁和写锁。lock必须被显式地创建、锁定和释放,为了可以使用更多的功能,一般用ReentrantLock为其实例化。为了保证锁最终一定会被释放(可能会有异常发生),要把互斥区放在try语句块内,并在finally语句块中释放锁,尤其当有return语句时,return语句必须放在try字句中,以确保unlock()不会过早发生,从而将数据暴露给第二个任务。

