什么是线程安全:
多线程运行完成的结果和单线程运行完成的结果相同就是线程安全。
代码添加注解:标记是否为线程安全,是否推荐。
三个并发工具:
postman:模拟发送Http请求。
Apache Bench:
-n 本次测试请求总数
-c 并发数为50
并发量。
测试时间。
完成的请求数。
失败的请求数。
所有相应数据的长度总和。
正文数据的综合。
吞吐率。完成的请求数/测试时间。
用户平均等待时间。
服务器平均等待时间。
这些请求单位时间内从服务器获取的数据长度。所有相应数据的长度总和/测试时间。
JMeter:
线程数:虚拟用户数,默认为1。
Ramp-Up Period:访问该系统的时间长度。
循环次数:一个虚拟用户执行多少次。
并发模拟-代码:
第一个类:计数器向下减的一个闭锁。 适合保证线程执行完其他的处理。
第二个类:信号量。控制同时并发的线程数。
方法1:线程不安全
信号量的acquire方法就是判断当前进程是否允许执行,若超过并发量,则当前线程阻塞。
执行完后释放进程。
这个方法保证当前的请求总数减为0。
然后关闭线程池。
领取专属 10元无门槛券
私享最新 技术干货