【并发编程】并发的学习步骤

原文:面试中并发类问题的准备和学习面试

并发与高并发概念

并发:数据库

同时拥有两个或者多个线程,若是程序在单核处理器上运行,多个线程交替得换入或者换出内存,这些线程是同时“存在”的,每一个线程都处于执行过程当中的某个状态,若是运行在多核处理器上,此时,程序中的每一个线程都将分配到一个处理器核上,所以能够同时运行。编程

高并发:缓存

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,他一般是指,经过设计保证系统可以同时并行处理不少请求。安全

对比:服务器

  • 谈并发时:多个线程操做相同的资源,保证线程安全,合理利用资源。
  • 谈高并发时:服务能同时处理不少请求(如12306的抢票,天猫双十一的秒杀活动,这会致使系统在短期内执行大量的操做,
    如对资源的请求,数据库的访问),提升程序性能(若是高并发处理很差,不光会致使用户体验很差,还可能会使服务器宕机,出现OOM等)。

并发编程知识点

要想系统的学习并发,还须要从并发的角度学习,过程当中覆盖J.U.C的这些知识。这里我直接给出并发的学习步骤图(包含并发及并发的线程安全处理,以及对当前面试常见考点的覆盖,好比对HashMap和ConcurrentHashMap的源码分析):
多线程

这个以前呢,还须要对Java并发的基础进行细致的学习,好比CPU缓存和Java内存模型(JMM),许多关键字好比volatile、synchronized等的特性都是在JMM里规定好的。架构

高并发

并发其实包含两部分:并发和高并发。其实上面一节讲的都是两部分里的第一部分:并发。那么并发和高并发到底有什么区别呢?并发

当咱们说多线程并发时,其实咱们更多的是讨论多个线程操做了相同的资源,这时咱们讨论点更多的是落在保证线程安全以及合理分配和使用资源上。而高并发主要指系统运行过程当中遇到“短期内遇到大量操做请求”的状况,主要发生在系统集中收到大量请求(例如:12306的抢票状况;天猫双十一活动)。当咱们说高并发时,咱们谈的是是如何提升现有程序的性能,更多的是对高并发场景的一些解决方案,思路啦、手段等等。若是高并发处理很差,不单单下降了用户的体验度(请求响应时间过长),同时可能致使系统宕机,严重的甚至致使OOM异常,系统中止工做等。这里呢,我直接给出高并发场景一般都会考虑的一些解决思路和手段:分布式

参考资料:
慕课网高并发实战(一)-并发与高并发基本概念

相关文章
相关标签/搜索