求漫画出处

原创声明:本文来源于公众号【胖滚猪学编程】,转载请注明出处。

上一节【漫画】JAVA并发编程三大Bug源头(可见性、原子性、有序性)我们聊了聊并发编程的三个bug源头,这还没开始进入并发世界,胖滚猪就遇到了难题。。

这个难题是所有初学者都会有的疑惑:没法复现那些理论知识告诉我们的bug。但是实际操练很重要,那么在本地开发环境,到底应该怎样模拟并发呢?

在本地模拟并发环境的方法有挺多的,比较热门的有以下几种,包括工具和代码:

1、Postman:Http请求模拟工具,可以设置发起N个请求(但不推荐,并不专业)

2、Apache Bench(AB):Apache 服务器的一个web压力测试工具,是一个命令行工具,可根据命令创建很多并发访问线程,模拟多个访问者同时对某一个URL地址进行访问。总体来说,ab工具小巧简单,上手学习较快,可以提供需要的基本性能指标;但是缺点就是没有图形化结果,不能监控。

3、Apache JMeter:Apache组织开发的基于Java的压力测试工具。功能相比AB会更加强大,尤其是有GUI图形化界面,这一点很爽。另外jmeter是一次完整的请求和返回;AB只是发出去请求,并不对返回做处理。如果你希望看到返回结果,那么也应该选择JMeter。

我们主要说一下如何通过jmeter和代码来模拟并发环境,也推荐使用这两种方式。

原创声明:本文来源于公众号【胖滚猪学编程】,转载请注明出处。

1、CountDownLatch 主要用来解决一个线程等待多个线程的场景,可以类比旅游团团长要等待所有的游客到齐才能去下一个景点;

而CyclicBarrier 是一组线程之间互相等待,更像是几个驴友之间不离不弃。

3、CountDownLatch 的计数器是不能循环利用的,也就是说一旦计数器减到 0,再有线程调用 await(),该线程会直接通过。

但CyclicBarrier 的计数器是可以循环利用的,而且具备自动重置的功能,一旦计数器减到 0 会自动重置到你设置的初始值。

4、除此之外,CyclicBarrier 还可以设置回调函数,可以说是功能丰富。而CountDownLatch不支持回调函数。

好了,现在再回到最开头那段无法复现的代码,我们用CyclicBarrier来改写一下,你就可以看到出现0的情况了。

另外还要说一点:即使是真正的并发执行了,出问题依旧是小概率事件,本人亲测运行了15次才出现0的结果。运气不好可能运行100次还是不会看到。不必太过于纠结这些哦!

1、下载好后解压目录,配置环境变量,运行jmeter.bat即可

3、配置线程组相关属性,主要是线程数量以及是否循环,这里我们设置并发线程数是50,执行完每个线程后不需要循环:

4、添加http请求,比如我们要测试/test接口的请求:

配置http ip\端口\编码格式等:

5、添加两个监听器、用于执行结束后查看图形结果和查看结果数:

6、运行线程组,就可以输出我们的结果了

好了,今天就到这里了,又到了要跟大家说拜拜的时候了~

原创声明:本文来源于公众号【胖滚猪学编程】,转载请注明出处。

本文转载自公众号【胖滚猪学编程】 用漫画让编程so easy and interesting!欢迎关注!形象来源于微信表情包【胖滚家族】喜欢可以下载哦~

}

在微信文章中如果要引用别人的漫画作品,需要怎么做?是注明出处还是说联系?

* 未面谈及查看证据材料,律师回答仅供参考

  • 漫画作品属于著作权保护客体,微信文章中使用他人的作品,涉嫌侵犯他人作品的“信息网络传播权”。
    应该获得作者同意后转发,如果找不到作者,可以注明来源,并注明作者,并写明请作者看到后联系,支付相应报酬。

  • 找法网年假规定知识栏目为您提供最新的年假相关文章,年假相关文章推荐等内容,希望能帮助到大家了解年假规定。如果您还有年假规定方面的法律...

  • 在网站上发现有侵权信息可以要求网站立刻删除吗;网络侵权民事诉讼证据不公证怎么办

  • 根据《刑法修正案(九)》的规定,在刑法第二百九十一条之一中增加一款作为第二款:编造虚假的险情、疫情、灾情、警情,在信息网络或者其他媒...

  • 根据我国著作权法的规定,著作权属于作者。所谓作者,即创作作品的公民。如果由法人或者其他组织主持,代表法人或者其他组织意志创作,并由法...

}

我要回帖

更多关于 漫画原作 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信