ReentrantLock使用

  • 创建两个线程,创建方式可自选;
  • 定义一个全局共享的 static int 变量 count,初始值为 0;
  • 两个线程同时操作 count,每次操作 count 加 1;
  • 每个线程做 100 次 count 的增加操作。    
复制代码
@SuppressWarnings("all")
public class DemoTest {

//    创建两个线程,创建方式可自选;
//    定义一个全局共享的 static int 变量 count,初始值为 0;
//    两个线程同时操作 count,每次操作 count 加 1;
//    每个线程做 100 次 count 的增加操作。

    public static int count = 0;
    public static Lock lock = new ReentrantLock();

    public static void main(String[] args)  {
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    try {
                        lock.lock();

                        count++;
                    }catch (Exception e){
                        e.printStackTrace();
                    }finally {
                        lock.unlock();
                    }

                }
            }
        });


        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    try {
                        lock.lock();

                        count++;
                    }catch (Exception e){
                        e.printStackTrace();
                    }finally {
                        lock.unlock();
                    }
                }

            }
        });


        t1.start();
        t2.start();


        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("总count= " + count);


    }


}
复制代码

 

posted @   永哥伟大  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示