小工具      在线工具  汉语词典  css  js  c++  java

ReentrantLock 实际测试

Java 额外说明

收录于:93天前

import java.util.concurrent.locks.ReentrantLock;

/**
 * ReentrantLock 测试用代码
 *
 * @author TF12778 2019/10/21 15:30
 */
public class ReentrantLockTest extends Thread  {

    private static int count =  100000;// 10000000;

    public static ReentrantLock lock = new ReentrantLock();
    public static int i = 0;

    public ReentrantLockTest(String name) {
        super.setName(name);
    }

    /**
     * 1。 当使用ReentrantLock锁的时候,不论任何时候,输出结果都是200000
     * 2。 当不使用ReentrantLock锁的时候,输出结果可能不等于200000,刚刚测试了一把是199988
     */

    @Override
    public void run() {
        for (int j = 0; j < count; j++) {
            lock.lock();
            try {
                System.out.println(this.getName() + " " + i);
                i++;
            } finally {
                lock.unlock();
            }
        }
    }

    /**
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        ReentrantLockTest test1 = new ReentrantLockTest("thread1");
        ReentrantLockTest test2 = new ReentrantLockTest("thread2");

        test1.start();
        test2.start();
        test1.join();  // 先执行子线程,再执行主线程
        test2.join();  // 先执行子线程,再执行主线程
        System.out.println("最后的执行结果:" + i); // 执行主线程
    }
}

. . .

相关推荐

额外说明

笔记27-MYSQL基础知识

数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统

额外说明

如何使用 pandas 将时间戳格式化为日期字符串?

如何利用pandas将时间戳格式化日期字符串呢? 例如:将 1357295797 转为 2013-01-04 10:36:37 #!/usr/bin/python # -*- coding: UTF-8 -*- """ @author: Roc-xb

额外说明

【必知】日常测试工作中必须了解的SQL语句有哪些?

SQL简介 SQL(Structured Query Language,结构化查询语言)是一套用于管理关系数据库管理系统(RDBMS),基于ANSI(American National Standards Institute 美国国家标准化组织)标准的计

额外说明

Explain执行计划字段解释说明---ID字段说明

ID字段说明 1、select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 2、ID的三种情况 (1)id相同,执行顺序由上至下。 (2)id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行。 (3)id

额外说明

【C#基础1-7】C#的枚举和结构体

一、引言 上篇文章【1-6C#基础】C#的数组和字符串 本篇介绍C#的枚举和结构体 二、枚举(Enum) 描述 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 声明

额外说明

rabbitmq在exchange下的两种使用模式

上一篇,我们介绍了rabbimtmq的简单工作队列的使用方式,即生产者和消费者之间直接通过绑定相同的workqueue进行消息的发送和接收,如果业务逻辑比较简单,这样的方式也是可以用的,但在实际工作中,实际的业务场景远远比这个复杂,而且需要更加细粒度的对

额外说明

非华为电脑安装华为电脑管家11的方法,华为应用商店和华为浏览器电脑版

前情提要:安装前一定要改时间,否则下面的口令就是错的! 部分人说文件失效,在微信公众号中回复 加群 可获得QQ群加群方式,文件放在群文件里。 2021年6月4日:说在前面:建议现在安装百度网盘中的那个版本,官网的版本有部分功能无法使用。 2021年6月5

额外说明

JavaScript 字符串截取方法汇总

可以使用的方法及选择 substring : 最常见 substr: 不建议使用 slice: 最灵活 JS新标准ECMAscript没有对substr进行标准化, 因此不建议使用。 slice比substring更灵活, 允许使用负数做参数 slice

额外说明

JDK 动态代理-解读mybaits的mapper接口是怎么实现查询方法的package proxy; public interface Executor { void doSomething

自己写的一个小实例: Executor 接口 package proxy; public interface Executor { void doSomething(); } Executor实现类 package proxy; public

ads via 小工具