本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
Apache Thrift 初学小讲(九)【测试接口的QPS】
QPS是接口每秒处理成功的调用次数,RT是处理一次请求所需要的平均时间,并发量是系统能同时处理的请求数。公式:并发量 = QPS * 平均响应时间。
这3个是比较重要的性能指标,如何测试这几个指标呢,可以用工具jmeter,jmeter原生支持http,但像thrift这种rpc接口就需要自己写jmeter的扩展了,可以参考https://www.jianshu.com/p/455e57 ...
如何使用jMeter发送两个逻辑上相关的HTTP请求
在前一篇文章使用jMeter构造大量并发的随机HTTP请求里我通过jMeter构造了大量的HTTP GET并发请求,对服务器产生了大量读操作。
现在我有另一个需求场景:假设我开发了一个创建Service Request的微服务,需要使用HTTP post调用。为了防止Cross Site Request Forgery(跨站域请求伪造),这个微服务调用时需要传一个XSRF token,这个XSR ...
使用jMeter构造大量并发HTTP请求进行微服务性能测试
比如我开发好了一个微服务,想测试其在大并发请求下的性能表现如何。
比较方便的一个做法是使用工具jMeter来构造这些请求。
创建一个新的工程:
创建一个新的Thread Group,下图意思是这个工程会使用3个线程同时发请求,每个请求执行一次。
在这个Thread Group里创建一个新的HTTP请求,维护如下属性。
Protoc ...
java并发AQS原理之ReentrantLock
看本文建议结合源码
首先来看看ReentrantLock的构造方法,它的构造方法有两个,如所示:
public ReentrantLock() {
sync = new NonfairSync();
}
public ReentrantLock(booleanfair
Java中关于同步,异步,多线程,多线程同步,并发
1.同步与异步
1.1同步
在多线程的环境中,经常会碰到数据共享的情况,即当多个线程共同需要访问一个资源时,他们需要以某种顺序来确保该资源在某一时刻只能被一个线程使用,否则,程序的运行结果将是不可预料的,在这种情况下就必须对数据进行同步,例如多个线程同时对同一数据进行写操作,即当线程A需要使用某个资源时,如果这个资源正在被线程B使用,同步机制就会让线程A一直等待下去,直到线程B结束对该资源的使用 ...
Oracle官方并发教程之线程池
Oracle官方并发教程之线程池
在java.util.concurrent包中多数的执行器实现都使用了由工作线程组成的线程池,工作线程独立于所它所执行的Runnable任务和Callable任务,并且常用来执行多个任务。
使用工作线程可以使创建线程的开销最小化。在大规模并发应用中,创建大量的Thread对象会占用占用大量系统内存,分配和回收这些对象会产生很大的开销。
一种最常见 ...
为什么java.util.concurrent 包里没有并发的ArrayList实现?
为什么java.util.concurrent 包里没有并发的ArrayList实现?
问:JDK 5在java.util.concurrent里引入了ConcurrentHashMap,在需要支持高并发的场景,我们可以使用它代替HashMap。但是为什么没有ArrayList的并发实现呢?难道在多线程场景下我们只有Vector这一种线程安全的数组实现可以选择么?为什么在java.util ...
关于java并发需要知道的几个概念(一)
最近在看《Java高并发程序设计》这本书,了解一些并发相关的概念,分享一下自己的理解
同步:方法调用一旦开始,方法调用者必须等待结果返回后,才能继续执行后续行为
例子:老师上课提问小明同学,要求小明同学立即给予解答,这时老师对小明就是同步操作,老师需要等待小明给予解答,才能继续后续工作
异步:方法调用一旦开始,方法调用就会立即返回,调用者可以继续后续操作。真正方法执行会另起一个线程执行。整个过 ...
Netty系列之Netty并发编程
1. JAVA内存模型与多线程编程
1.1. 硬件的发展和多任务处理
随着硬件特别是多核处理器的发展和价格的下降,多任务处理已经是所有操作系统必备的一项基本功能。在同一个时刻让计算机做多件事情,不仅仅是因为处理器的并行计算能力得到了很大提升,还有一个重要的原因是计算机的存储系统、网络通信等IO性能与CPU的计算能力差距太大,导致程序的很大一部分执行时间被浪费在IO wait上面,CPU ...
CAS解释
最近在看JAVA并发的知识,里面提到CAS概念,其实说白了和数据库操作一样,代条件的更新,在更新原值之前,记录原来的值,真正的更新的时候比对原值,如果原值编码,则不做更新
UPDATE A+100 WHERE A=100
Compare And Swap
CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。这个指令会对内存中的共享数据做原 ...