码迷,mamicode.com
首页 > 其他好文 > 详细

高并发编程初步印象

时间:2018-04-25 00:14:30      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:根据   原子性   单机   semaphore   tip   项目   cal   不可   用户   

【前言】
之后的技术方向应该是大数据量和高并发场景下的编程,分别对应大量数据的存储查询计算,超高请求的多线程处理,这才是以后的技术发展方向。当然是在能完成基础业务的前提下,增删改查数据转换SSM这些。现在项目的用户数上来了,经常出现,在公司测试好好的,一发布到现网,就会出各种性能瓶颈,请求超时,数据库连接超时,甚至部件奔溃。所以不光是高并发的编程,更需要高并发场景下的测试,像公司基本都是功能测试,性能测试很少,测试不充分,肯定会出问题。
好了,废话就不多说了,记录下学习经验。
【正文】
高并发主要包括:线程安全,线程封闭,线程调度,同步容器,并发容器,AQS,J.U.C等等
一般解决高并发问题,主要采取手段:扩容,缓存,队列,拆分,服务降级与熔断,数据库切库,分库分表等等
说下这些在项目组的应用吧。扩容,基本所有部件都经历过 单机-双击-集群;缓存,主要是在用户订购关系这块用的redis+持久化;服务降级,是给接口加了线程锁,频率1tips;分库分表,基本都会有用户库系统库的概念,用户表这种几百w的大表,根据ID首字母拆成10个表。
高并发无非是为了保证你的线程是安全的,不会出现线程传输的数据和最后入库的不一致。
线程安全主要包括:
线程安全性:原子性,可见性,有序性,atomic包,CAS算法,synchronized和lock,volatile,happes-before
安全发布对象:安全发布方法,不可变对象,final关键字使用,不可变方法,线程不安全类与写法
线程封闭:堆栈封闭,threadLocal线程封闭,JDBC的线程封闭,同步容器,并发容器,J.U.C
AQS和J.U.C组件:CountDownLatch,CyclicBarrier,Semaphore

高并发编程初步印象

标签:根据   原子性   单机   semaphore   tip   项目   cal   不可   用户   

原文地址:https://www.cnblogs.com/likailun/p/8934403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!