java并发编程和高并发(一)

一、课程特点:

1、之相关知识体系包括:

线程安全、线程封闭、线程调度、同步容器、并发容器、AQS、J.U.C等等;

2、高并发解决思路与手段,包括:

扩容:

缓存:

队列:

拆分:

服务降级与熔断:

数据库切库:

分库分表:

等等;

3、

4、最简单的场景举例:

实现一个计数功能,即将一个数字进行累加,如果是一个线程,没问题,但是多个线程,比如同时有200个线程执行,则结果完全有可能不一样,比如实例中运行时,发现最后的结果(累加和)总是小于预期,而且每次执行的结果可能不一样。 

三、基本概念:

1、基础知识:

并发:同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是同时“存在”的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行。

高并发:高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求;

2、对比基本概念:

并发:多个线程操作相同的资源,保证线程安全,合理使用资源;

高并发:系统运行时,服务能同时处理很多请求,提高程序性能;比如双十一、12306等短时间内遇到大量请求的情况,这时系统在短时间内会执行大量的操作,例如对系统的请求,对数据库的操作等等。如果处理不好,不仅会造成用户体验度不好,请求请求时间边长,同时也可能导致系统宕机,严重的甚至导致系统OOM异常,机器停止工作。

3、应对考虑:

如果要想系统能够应对高并发的状态,就需要从多个方面进行优化,比如硬件、网络、系统架构、开发语言的选取、数据结构的应用、算法优化、数据库优化等等。

4、知识技能:

》总体架构:Spring Boot、Maven 、JDK8、MySQL

》基础组件:Mybatis、Guava、Lombok、Redis、Kafka

》高级组件(类):Joda-Time、Atomic包、J.U.C、AQS、ThreadLocal、RateLimiter、Hystrix、threadPool、shardbatis、curator、elastic-job等。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值