java都有哪些锁 怎么用
时间: 2024-03-12 13:44:31 浏览: 26
Java中主要有以下几种锁:
1. synchronized锁:synchronized是Java中内置的一种锁机制,可以用来保证线程安全。可以在方法或代码块上使用synchronized关键字,来实现对共享资源的互斥访问。
2. ReentrantLock锁:ReentrantLock是Java中的一种可重入锁,它提供了比synchronized更灵活的锁机制。可以通过lock()方法获取锁,通过unlock()方法释放锁。
3. ReadWriteLock锁:ReadWriteLock是Java中的一种读写锁机制,它允许多个线程同时读共享资源,但是在写操作时需要独占锁。可以通过ReadWriteLock的readLock()方法获取读锁,writeLock()方法获取写锁。
4. StampedLock锁:StampedLock是Java中的一种乐观锁机制,它提供了更高的并发性能。可以通过tryOptimisticRead()方法获取锁,通过validate()方法验证锁是否有效,通过writeLock()方法获取写锁。
使用锁的一般步骤如下:
1. 创建锁对象。
2. 在需要保护共享资源的代码块中,使用锁对象的lock()方法获取锁。
3. 在代码块结束后,使用锁对象的unlock()方法释放锁。
例如,使用synchronized锁来保证线程安全:
```
public class MyThread implements Runnable {
private int count = 0;
private Object lock = new Object();
public void run() {
synchronized (lock) {
count++;
}
}
}
```
在上面的代码中,使用synchronized关键字来保证对count变量的互斥访问。