系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素:   一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:Q...

2017-09-21 15:01:03

阅读数 134

评论数 0

AtomicLong.lazySet是如何工作的?

Jackson Davis说: 为一个AtomicLong对象设置一个值,jvm会确保其他线程读取到最新值,原子类和voliatile变量也是一样的,这是由依赖于硬件的系统指令(如x86的xchg)实现的。lazySet却是无法保证这一点的方法,所以其他线程在之后的一小段时间里还是可以读到旧的值...

2017-04-23 21:12:22

阅读数 354

评论数 0

hashtable、hashmap、ConcurrentHashMap、treemap的区别

转自:http://blog.csdn.net/xin_jmail/article/details/24431835 自己对hashtable、hashmap、treemap的理解,不知道是否有不对的地方。 HashTable:  (1)是一个包含单向链的二维数组,table数组中是Entr...

2017-04-23 18:21:31

阅读数 278

评论数 0

ConcurrentHashMap原理详解

下面这部分内容转载自:   http://www.haogongju.net/art/2350374   JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都 串行化了,这样保证了线程的安全性,所以...

2017-04-23 17:50:09

阅读数 202

评论数 0

Java 理论与实践: 正确使用 Volatile 变量

转载于:http://www.ibm.com/developerworks/cn/Java/j-jtp06197.html Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与synchronized 块相比,volatile ...

2017-04-19 18:40:26

阅读数 173

评论数 0

聊聊并发(一)——深入分析Volatile的实现原理

引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。 它在某些情况下比sync...

2017-04-12 11:28:42

阅读数 266

评论数 0

Disruptor

已经不记得最早接触到 Disruptor 是什么时候了,只记得发现它的时候它是以具有闪电般的速度被介绍的。于是在脑子里, Disruptor 和“闪电”一词关联了起来,然而却一直没有时间去探究一下。       最近正在进行一项对性能有很高要求的产品项目的研究,自然想起了闪电般的 Disru...

2017-02-23 10:20:32

阅读数 414

评论数 0

ReentrantReadWriteLock读写锁的使用

Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。   读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可...

2017-02-22 10:57:05

阅读数 226

评论数 0

Condition-线程通信更高效的方式

Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。         那么引入本篇的主角,Condition,Condition 将 Obj...

2017-02-22 10:34:12

阅读数 193

评论数 0

面试问题Executors有哪些创建线程池的方法

下面四个方法本质上都是调用ThreadPoolExecutor的构造方法: 1:Executors.newSingleThreadExecutor() 2:Executors.newFixedThreadPool(nThreads) 3:Executors.newCachedThreadPo...

2017-02-21 09:37:38

阅读数 1097

评论数 0

Java锁的种类以及辨析

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA中常见的锁以及其特性,为大家答疑解惑。 1、自旋...

2017-02-19 18:32:24

阅读数 458

评论数 0

ConcurrentLinkedQueue原理(上)

ConcurrentLinkedQueue是Queue的一个线程安全实现。 它是一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。 队列的尾部 是队列中时间最短的元素。新的元素插入到队列的尾部,队列获取操作从队列头部获得...

2017-02-19 12:29:55

阅读数 318

评论数 0

Java集合---ConcurrentHashMap原理分析(面试问题:ConcurrentHashMap实现原理是怎么样的)

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中...

2017-02-18 19:22:21

阅读数 5484

评论数 0

JVM中线程的状态转换图(面试问题:java线程有哪些状态)

JVM中线程的状态转换图 线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的...

2017-02-16 13:47:15

阅读数 803

评论数 0

sleep和wait有什么区别(面试问题:sleep和wait有哪些区别)

第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩.           还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wa...

2017-02-15 10:49:57

阅读数 795

评论数 0

Lock与synchronized 的区别

一、synchronized和lock的用法区别   (1)synchronized(隐式锁):在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。   (2)lock(显示锁):需要显示指定起始位置和终止位置。一般使用Re...

2017-02-15 10:47:30

阅读数 245

评论数 0

volatile的适用场景(面试问题:volatile有什么作用)

把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。可见性则更...

2017-02-15 09:37:31

阅读数 6461

评论数 0

一个简单的线程池实现

public class ThreadPool { private AtomicInteger maxSize; private BlockingQueue taskQueue; private List threads=null; private static ThreadPool ...

2017-01-26 16:48:13

阅读数 215

评论数 0

一个简单的分段锁hashmap

public class MyConcurrentHashMap { private HashMap map=new HashMap(); private Object[] locks=null; private int lockSize; public MyConcurrentH...

2017-01-26 16:45:23

阅读数 557

评论数 0

实现一个简易的Python版CountDownLatch

''' Created on 2017-1-11 @author: admin ''' from threading import Condition, Thread import time class CountDownLatch: def __init__(self,count):...

2017-01-11 15:43:31

阅读数 753

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭