一、需求背景 1、自动化测试:一个自动化测试脚本有成千上万条用例,每次执行的时间在小时级别,leader说为了能先于用户知道线上的问题,能否加快脚本的执行速度 2、功能测试:不使用jmeter等工具,使用junit5实现来测试接口是否存在线程安全以及分布式线程安全问题,是否有做幂等性处理 二、解决方 ...
分类:
其他好文 时间:
2021-07-12 17:52:37
阅读次数:
0
String为何用final修饰 标签(空格分隔): Java 1. 为了实现运行时常量池实现细粒度颗粒对象的复用. 如题 2. 为了安全 字符串是不可变的, 所以是多线程安全的, 同一个字符串可以被多个线程共享. 这样便不用因为线程安全问题而使用同步(牵扯到Volatile关键字). 字符串自己便 ...
分类:
其他好文 时间:
2021-06-02 13:19:53
阅读次数:
0
一、旧 API 存在多线程安全问题 import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList ...
分类:
编程语言 时间:
2021-05-24 13:14:37
阅读次数:
0
###方法1:同步代码块 synchronized ( 对象){ // 需要被同步的代码; } class Window extends Thread{ // private int ticket=100;//这样会有300张票 private static int ticket=100;//只有1 ...
分类:
编程语言 时间:
2021-04-19 14:44:35
阅读次数:
0
List是线程不安全的,通过一个数组存储数据,当容量达到数组上限时,创建一个新数组,因此存在线程安全问题 SafeList是在做增删改操作时返回一个新的ReadonlyList,所以不存在线程安全问题 /// <summary> /// SafeList is mutable, but it use ...
分类:
编程语言 时间:
2021-02-20 12:22:14
阅读次数:
0
常用的集合类型如ArrayList,HashMap,HashSet等,在并发环境下修改操作都是线程不安全的,会抛出java.util.ConcurrentModificationException异常,这节主要记录如何在并发环境下安全地修改集合数据。 ###List 举个ArrayList线程不安全 ...
分类:
编程语言 时间:
2021-02-19 13:31:24
阅读次数:
0
线程安全 当多条线程同时使用一个成员变量时,可能会有不只一条同时执行,使得重复执行某一次操作或出现无意义操作 例如一个表示计数的整数,某一个数计了多次或出现负数 线程安全处理(线程同步) 1.同步代码块 synchronized(锁对象){ 可能会造成线程安全问题的代码 } 其中锁对象可以任意定义 ...
分类:
编程语言 时间:
2020-11-07 16:29:21
阅读次数:
65
乐观锁的一种实现方式——CAS在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS、CAS的应用以及CAS存在的问题等。线程安全众所周知,Java是多线程的。但是,Java对多线程的支持其实是一把双刃剑。一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题。线程安全性可能是非常复杂的,在没有充足的同步的情况下,多个线程
分类:
其他好文 时间:
2020-11-01 21:55:04
阅读次数:
19
乐观锁的一种实现方式——CAS在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS、CAS的应用以及CAS存在的问题等。线程安全众所周知,Java是多线程的。但是,Java对多线程的支持其实是一把双刃剑。一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题。线程安全性可能是非常复杂的,在没有充足的同步的情况下,多个线程
分类:
其他好文 时间:
2020-11-01 11:07:17
阅读次数:
21
最近在项目使用Java8 的CompletableFuture执行一些异步多线程任务,一时疏忽,导致ArrayList出现线程安全问题 就算在方法内使用局部变量,但使用异步多线程执行任务,还是会出现线程安全问题 以下是错误、正确使用的示例方法: package test; import java.t ...
分类:
编程语言 时间:
2020-09-18 04:08:44
阅读次数:
47