白夜行悟空

日光之下,并无新事。

JMeter在Mac下的安装

1、选择版本 安装JMeter之前先要保证你的系统安装了java。 截止2018年10月,JMeter的最新版本是5.0,JMeter 5.0需要Java 8、Java 9。 2、安装JMeter 进入JMeter的下载地址页面,如下图,有两个版本可供下载: Binaries:二进制版,即已经编...

2019-01-16 16:40:51

阅读数 94

评论数 0

【负载测试】Mac下进行Web并发测试-ApacheBench

一、简介 1、apache 测试工具 负载测试 ApacheBench 是一个指令列程式,可创建并发访问线程,模拟多个用户同时对某一地址进行访问。用来测试Web服务器的负载压力。 Liunx和Mac自带ApacheBench,终端中可直接进行命令控制。 2、命令及其参数选项 (1)Usage:ab...

2019-01-16 15:42:53

阅读数 104

评论数 0

三、并发与高并发之java内存模型

一、理解Java内存区域与Java内存模型 1、Java内存区域 Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有的用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的数据区域,而绿色部分代表的是每个线程的私有数据区域。 方法区(Method ...

2019-01-15 18:23:33

阅读数 92

评论数 0

二、并发与高并发之CPU多级缓存-乱序执行优化

处理器为提高运算速度而做出违背代码原有顺序的优化 例如:计算a*b的值 单核时候,执行会是: 多核时候,在CPU乱序执行优化的时候可能变成 单核处理器时代处理器能够保证处理器做出的优化不会影响结果,但是多核时代就会造成乱序,使最终结果错误。 ...

2019-01-15 17:48:50

阅读数 122

评论数 0

一、并发与高并发之CPU缓存一致性协议MESI

一、CPU高速缓存(Cache Memory) 1、CPU为何要有高速缓存 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决这个问题,CPU厂商在CPU中内置了少量...

2019-01-15 17:47:06

阅读数 59

评论数 0

HTTP协议

一、HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结...

2019-01-14 14:44:51

阅读数 40

评论数 0

OSI七层模型与TCP/IP五层模型

一、OSI参考模型 1、OSI的来源 OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。 ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这...

2019-01-14 12:01:19

阅读数 27

评论数 0

四十一、并发编程之Java的Executor框架实现原理

一、Java的Executor框架 二、Executor接口 public interface Executor { void execute(Runnable command); } Executor接口是Executor框架中最基础的...

2019-01-11 19:03:03

阅读数 40

评论数 0

四十、并发编程之线程池

一、线程池概述 1、什么是线程池 Java中开辟出了一种管理线程的概念,这个概念叫做线程池,线程池的好处,就是可以方便的管理线程,也可以减少内存的消耗。 2、线程池的优势 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要...

2019-01-11 19:02:42

阅读数 29

评论数 0

三十九、并发编程之ConcurrentHashMap源码解析

一、ConcurrentHashMap实现原理 众所周知,哈希表是中非常高效,复杂度为O(1)的数据结构,在Java开发中,我们最常见到最频繁使用的就是HashMap和HashTable,但是在线程竞争激烈的并发场景中使用都不够合理。 1.HashMap HashMap是线程不安全的,在并发...

2019-01-10 15:33:39

阅读数 52

评论数 0

三十八、并发编程之阻塞队列LinkedBlockingQueue原理简析

一、LinkedBlockingQueue简介 基于链表的阻塞队列,同ArrayListBlockingQueue类似,其内部也维持着一个数据缓冲队列(该队列由一个链表构成),当生产者往队列中放入一个数据时,队列会从生产者手中获取数据,并缓存在队列内部,而生产者立即返回;只有当队列缓冲区达到最大...

2019-01-09 19:07:01

阅读数 57

评论数 1

三十六、并发编程之阻塞队列BlockingQueue原理与使用

一、前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场...

2019-01-09 19:06:37

阅读数 120

评论数 0

三十七、并发编程之有界阻塞队列 ArrayBlockingQueue 原理探究

一、 ArrayBlockingQueue简介 基于数组的阻塞队列实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,这是一个常用的阻塞队列,除了一个定长数组外,ArrayBlockingQueue内部还保存着两个整形变量,分别标识着队列的头部和尾部在...

2019-01-09 19:06:16

阅读数 51

评论数 0

三十五、并发编程之并发容器ConcurrentLinkedQueue原理与使用

一、简介 一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。 新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。当多个线程共享访问一个公共 collection 时,Concu...

2019-01-09 16:57:11

阅读数 90

评论数 0

三十四、并发编程之并发容器CopyOnWriteArrayList原理与使用

一、简介 CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Ja...

2019-01-08 19:09:06

阅读数 29

评论数 0

三十三、并发编程之同步容器与并发容器

一、同步容器 1、容器框架 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。List、Set、Queue接口分别继承了Collection接口,Map本身是一个接口。 注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Co...

2019-01-08 18:38:24

阅读数 63

评论数 0

三十二、并发编程之Fork/Join框架

一、 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干...

2019-01-08 14:37:31

阅读数 42

评论数 0

三十一、并发编程之FutureTask详解

聊聊多线程 你真的了解并发吗 多线程和并发 多线程和多进程 线程一定快吗 学习并发的四个阶段 学习目标 适合人群 荐书 熟练掌握API,能够完成并发编程 熟读API源码,掌握其原理 理解Java虚拟机的内存模型 操作系统对并发的支持 学习并发的四个阶段 为什么要学习并发...

2019-01-08 11:20:16

阅读数 59

评论数 0

二十九、并发编程之并发工具类Semaphore详解

一、简介 Semaphore是一个计数信号量,常用于限制可以访问某些资源(物理或逻辑的)线程数目。 Semaphore有两种模式,公平模式和非公平模式。公平模式就是调用acquire的顺序就是获取许可证的顺序,遵循FIFO;而非公平模式是抢占式的,也就是有可能一个新的获取线程恰好在一个许可证释...

2019-01-03 18:47:45

阅读数 50

评论数 0

二十八、并发编程之并发工具类CyclicBarrier详解

一、概述 CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点。与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。 CyclicBarrier支持一个可选的Runnabl...

2019-01-03 18:47:24

阅读数 33

评论数 0

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