请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

理论全懂,实战小白

说实话,单独一个知识点抽出来,并没有让人觉得难到无法理解。系统性的知识储备,在重复学习、自我总结以后也有了。现在的痛点就是集中在没有实际经验,不知道什么场景下应该并发;自己写的并发代码与高质量并发代码之间到底有哪些区别。

正在回答

1回答

Jimin 2018-04-14 23:56:31

你好,其实大家不是没有实际经验,也不是什么场景下该并发。我们日常开发的每个接口都可以并发访问,因为只要有多个客户端一起访问就可以了,而实际上就是这样,任何一个接口都可能涉及到并发的线程安全问题。并发伴随着我们开发的每个接口,我们专门学习并发,更多的是让自己有能力分析潜在的线程安全问题,知道可以使用手段处理,有些时候也可以考虑自己启动多个线程并发处理一些任务,更好的利用我们的服务器等资源。

线程安全问题关键点在于操作多个线程共享的资源(比如我们课程里的静态变量),我们日常开发时,遇到操作多个线程共享的资源时,就需要考虑我们课程里介绍的手段了,比如synchronized、atomic、同步容器、并发容器、线程封闭、使用线程安全的类、设计成不可变类等等。基本上都是分析出有线程安全问题时,采用合适的方式避免。

另外,当我们需要处理一些比较耗时的任务时,我们可能就会考虑使用使用多个线程一起处理来加速,这时我们就显式的启用多个线程并发去完成。启动多个线程不能没有限制,这时我们就会想到使用线程池,以及使用信号量等控制同时运行的线程的数目。实际开发中,不同的场景及业务会需要引入不同的控制,CountDownLatch、Semaphore、CyclicBarrier等就一点点排上用场了。


5 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信