java并发和高并发之项目准备(三)

一、案例环境初始化:讲述了通过https://start.spring.io  这个网页,简单创建一个spring boot框架,然后将其放在由码云代码托管工具管理的一个项目中,由码云进行代码管理,再通过idea打开项目进行后期创作的过程。借助几个工具,将环境搭建起来。

二、案例准备工作,其中提到的几点值得学习的地方:

1、自定义注解,用于后期方便阅读,使用到了@Retention(RetentionPolicy.SOURCE) 注解,其中常量RetentionPolicy.SOURCE,在被编译时就会被忽略,在这里有点可以为其他做通用注释的功能。

2、讲述Spring中的@Target(Elementype.TYPE)注解;

三、并发模拟工具:

1、postman :Http请求模拟工具,在并发上并不是很专业,对于开发人员还是比较常见的。

     此处注意学习下它的使用即可。

2、ApacheBeanch (通常叫ab工具):Apache附带的工具,测试网站性能;

ab 是个命令,最常见简单的用法如下:

ab  -n  1000  -c  50  http://localhost:8080/test

注: ab 为固定,命令名称,相当于 Linux中的 ls 命令;

        -n    后面的数字表示一共发送的请求次数,如上表示一共请求1000次;

       -c      后面的数字,表示并发数量,如上表示同一时刻,可能有50个并发的请求;

        最后加一个网址, 表示要请求访问的地址;

ab命令可能还有其他参数,此处是基本常用的。

ab没有可视化界面,在此处简单说明下

java并发和高并发之项目准备(三)_第1张图片

 java并发和高并发之项目准备(三)_第2张图片

注释:

Concurrency Level :  50     表示: 并发量为50;

Time taken for tests : 0.355 seconds   表示:测试总共用的时间。

Complete requests :1000   表示:测试总共完成的请求数

Failed requests :   0       表示: 请求失败的次数

Total transferred  :  136000  bytes    表示:所有请求的响应数据的长度总和。包括每个http响应数据的头信息和正文的长度。但这里不包括 http请求数据的长度,仅仅为web流向用户的应用层数据长度

HTML transferred :  4000 bytes          表示:所有请求响应的数据中正文数据的总和,也就是减去上一行中提到的头信息的数据长度。

Requests per second :2816.64[#/sec](mean)     表示:吞吐率与并发数相关,就是上方complete requests  / time taken for tests 比例

Time per request : 17.752[ms](mean)                   表示:用户平均请求等待时间

Time per request :0.355 [ms](mean,across all concurrent requests)    表示:服务器平均请求等待时间

Transfer rate  :   374.08 [kbytes/sec] received        表示:这些测试中单位时间内从服务器请求的数据长度。计算为:

                                                                                              Total transferred /  Time taken for tests

3、JMeter:Apache组织开发的压力测试工具;

     该工具需要安装,其名称为 apache-jmeter-版本号,可进入该目录的bin 目录下(Linux类系统),直接运行相关命令。

该工具为可视化工具:

线程数:虚拟的用户访问数量

Ramp-Up  Period (in seconds)  :注意该值,是以秒为单位

因为工具功能多,底下可详细了解

 

4、代码:Semaphore  、CountDownLatch等用代码模拟并发的场景;

java并发和高并发之项目准备(三)_第3张图片

countDownLatch 类一定程度上可以阻拦某些线程的进行;经常用于保证某些方法执行

完成之后进行的处理

java并发和高并发之项目准备(三)_第4张图片

 sampore

java并发和高并发之项目准备(三)_第5张图片

java并发和高并发之项目准备(三)_第6张图片

java并发和高并发之项目准备(三)_第7张图片 

你可能感兴趣的:(java,多线程,技术,工具学习使用)