本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!
作者| 慕课网精英讲师 韦恩001
你好,我是韦恩,在 Java 领域混迹 9 年有余。 相信每一位 Java 工程师对 Java 并发都不陌生,无论是面试、工作中编写的代码以及线上问题定位都需要并发知识。
- Java 并发是面试中考察的基础技能
- Java 并发被认为是 Java 候选人必备的技能之一,面试中出现的频率不亚于 JVM,很多工作多年的 Java 程序员因为平时不注重这方面的学习,与心仪的工作机会失之交臂。对 Java 并发考察一方面能反映候选人日常工作是否深入底层,平时遇到难题是否足够多,另一方面还能反应候选人是否有自我学习的驱动力,这也是筛选普通工程师和优秀工程师的常用套路。
- 工作编码中离不开并发知识
- 线程是 Java 语言不可或缺的功能,多线程能充分发挥多核心处理器系统的计算力,这使得我们写 Java 代码不得不理解多线程运行的原理,处理不当就会带来线程安全问题(稍后章节会有讲解)。我们接入的各种框架、中间件中充斥着并发代码,掌握好并发知识能让我们通过查看代码做出最优的技术选型。
- 问题诊断与定位离不开并发知识
- 在工作如果我们维护的尤其是拥有海量用户的大型系统,我们需要监控系统中的每个细节,要系统整体运行机制有了解,对系统有足够的掌控力,并发知识是不可或缺的。比如线程池满如何发生的?哪些线程消耗的 CPU 最高?造成死锁的根源是什么?为什么多线程环境下结果与预期不一致?锁等待造成的 RT 增高是否有优化空间等等。
并发知识的 Java 工程师的必备技能,但学好并发却不是件容易的事情,主要有三点。
- Java 并发需要系统的进行学习
- 不同于 Java API, 可能我们看看样例和代码就掌握了,而学好并发我们需要首先熟悉并发理论,然后结合实践掌握并发的解决方案,在学习过程中需要遵守循序渐进的原则。如果要达到举一反三效果,还需要掌握并发包的内部原理。
- Java 并发是需要总结并形成记忆
- 并发领域包含的知识点非常多,有些知识点在工作中不常用但却在面试中高频出现;有些知识点是为后续的知识点打基础的;并发组件的使用是分场景的,我们需要对每一个并发组件的优缺点了如指掌。
- 并发包的原理的研究需要花很长时间
- 核心原理是需要掌握的,比如 ThreadPoolExecutor 工作流程想必大家面试中都遇到过, 原理的研究最直接的方式就是 debug 源码,但缺点就是非常费时费力,另外很难抓住核心。但如果通过图形化来描述核心原理,那么对学习是事半功倍的。
学习建议
并发领域知识点之间关系是承上启下的,学习一定要遵守一个循序渐进的过程。在学习的过程中,最好结合自己的理解和学习最终画出整个脑图,以方便后续检索和温习。
欢迎关注「慕课网」,发现更多IT圈优质内容,分享干货知识,帮助你成为更好的程序员!
标签:知识点,知识,Java,要学,编程,学习,并发,线程 From: https://blog.51cto.com/u_15771948/5929276