java如何使用代码模拟高并发操作

Java通过代码模拟高并发可以以最快的方式发现我们系统中潜在的线程安全性问题,此处使用Semaphore(信号量)和 CountDownLatch(闭锁)搭配ExecutorService(线程池)来进行模拟,主要介绍如下:

1、Semaphore

JDK 1.5之后会提供这个类

Semaphore是一种基于计数的信号量。它可以设定一个阈值,基于此,多个线程竞争获取许可信号,做完自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞。Semaphore可以用来构建一些对象池,资源池之类的,比如数据库连接池,我们也可以创建计数为1的Semaphore,将其作为一种类似互斥锁的机制,这也叫二元信号量,表示两种互斥状态。

2、CountDownLatch

JDK 1.5之后会提供这个类,

CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。

CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。

如下图:

java如何使用代码模拟高并发操作图1

java如何使用代码模拟高并发操作图2

如上方法模拟5000次请求,同时最大200个并发操作,观察最后的结果,发现每次的结果都有差别,和预期不符,得出结果部分如下:

java如何使用代码模拟高并发操作图3

最后结论:add 方法 非线程安全

那如何保证add方法 线程安全,将add方法进行如下修改即可:

java如何使用代码模拟高并发操作图4

执行结果如下:

java如何使用代码模拟高并发操作图5

最后结论:修改后 的 add 方法 线程安全

本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023-03-03 09:24
下一篇 2023-03-03 11:49

相关推荐

  • 有哪些适合做微信个性签名的句子

    1、每个人最终和自己越长越像。 2、很多事没有来日方长。 3、做让人远远听见的风。 4、我将永远对你行注目礼。 5、忠诚是爱情的桥梁。 6、自尊是一个人的脊梁。 7、成长就是痛并快…

    2023-02-26
  • 手机代码大全安卓通用

    手机所谓的「命令代码」其实就是安卓工程模式的指令,它可以通过手机拨号盘输入那些相关隐藏代码,让设备快速进入工程测试模式,从而了解那些不为人知的手机硬件信息。它可以直观反映手机的使用…

    2023-06-10
  • 汽车这几个地方不能改

    武汉交警日前 发布了一组交通违法查处数据 其中查处非法改装车辆1934起 有群友提问 到底哪些改装属于非法? 哪些是合法? 武汉交警介绍 想把自己的爱车变酷是允许的 但想变“壮”就…

    2023-10-17
  • 赵丽颖baby参加的红毯,赵丽颖baby同台比美

    2022年微博视界大会·微光盛典在苏州举办,虽然听着好像是新活动,但其实前身就是微博之夜,所以现场星光熠熠,不仅是娱乐圈明星大聚会,更是新老流量正面碰撞,每一届都精彩纷呈,红毯造型…

    2023-07-06
  • 有什么原因导致国际短信发送失败

    随着国际营销的不断发展,越来越多的企业和团队开始使用国际短信作为一种重要的营销工具。但是,有些企业和团队在使用国际短信时会遇到发送失败的情况,而这对于他们的营销效果会产生重大的影响…

    2023-04-23
  • 吉尔吉斯斯坦手机号是什么样的,塔吉克斯坦流量套餐

    吉尔吉斯坦为中亚东北部的内陆国,境内间流湖泊众多,水资源丰富,风景优美,具有较高的旅游价值。去吉尔吉斯斯坦旅行,手机上网和打电话是一定要解决的问题。东南亚e生活小编为您整理了以下常…

    2023-02-27
  • 手机总是卡是什么原因

    手机卡顿的多种原因如下: 一:手机存储内存与运行内存不够 手机设置—关于手机—即可看到你的手机配置,见下图: 这是我的手机,一天到晚,都卡顿,小编眼泪都哭干了,想换,但金融危机。 …

    2023-08-03
  • 苹果手机相册的照片怎么删除不了

    苹果手机相册的照片怎么删除不了?为什么苹果手机相册里的照片无法删除?当我们在使用苹果手机时,发现手机相册里的照片一直无法删除,这是为什么呢,怎么删除不了,苹果手机相册里的照片怎么删…

    2023-08-28
  • 这才是小米手机的全部特色功能

    大家都知道,现在小米手机的性价比是越来越高,不少小伙伴也因为小米手机的好用而成为了忠实的米粉。那大家在用了这么久的小米手机后,里面这些非常强大的功能都了解了吗?今天就让我们一起来看…

    2023-08-24
  • 直屏新旗舰小米13首发评测(小米13是曲屏还是直屏)

    近几年,在旗舰机清一色标配曲面屏的情况下,用户“想要直屏旗舰”的呼声愈发高涨。这是为何?直屏有何优势?我们不妨来看看2022年压台登场的小米13,它以极致的直屏设计和“满血”的配置…

    2023-02-14