【Java多线程】5 Java中的并发工具

第五部分:Java 中的并发工具

Java 提供了多种并发工具类,帮助开发者更好地管理和控制多线程的执行。这些工具类主要位于 java.util.concurrent 包中(可点击跳转拓展一),提供了比传统的 synchronized 更强大和灵活的并发控制机制。

一、Lock 接口

Lock 接口是 Java 提供的一种比 synchronized 更灵活的锁机制。通过 Lock,我们可以手动控制锁的获取和释放,支持尝试获取锁、定时获取锁等操作。

步骤
  1. 创建一个实现 Lock 接口的锁对象(如 ReentrantLock)。
  2. 在需要同步的代码块中,调用 lock() 方法获取锁,执行完后调用 unlock() 方法释放锁。
示例代码
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

class Counter {
   
   
    private int count = 0;
    private final Lock lock = new ReentrantLock(); // 创建 ReentrantLock 对象

    public void increment() {
   
   
        lock.lock(); // 获取锁
        try {
   
   
            count++;
        } finally {
   
   
            lock.unlock(); // 确保释放锁
        }
    }

    public int getCount() {
   
   
        return count;
    }
}

public class LockExample {
   
   
    public static void main(String[] args) {
   
   
        Counter counter = new Counter();
        
        Thread t1 = new Thread(() -> {
   
   
            for (int i = 0; i < 1000; i++) counter.increment();
        });

        Thread t2 = new Thread(() -> {
   
   
            for (int i = 0; i < 1000; i++) counter.increment();
        });

        t1.start();
        t2.start()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天呐少爷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值