https://www.zhihu.com/question/27575123
如何掌握java多线程,高并发,大数据方面的技能?
18 个回答
反对第一个匿名答案。
知易行难。但要想真正能够面试进互联网公司并能顺利通过试用期,光看书是不行的,必须得做!
只有自己实际动手操作后,你才能发现这方面的知识哪里有坑,并且往往实际做起来其实没有你想像的那么难(当然一般也没有想象中那么简单,所以肯定是需要有一定时间和精力的付出)。
我们假设你只看了书本上的知识就去面试。那会有两种情况,一种情况是面试官对于这方面的知识也很匮乏,这时你可以通过书本上的理论知识来忽悠一下(但是一般都是多轮面试,一般总有一个懂这方面的技术),然后顺利入职,结果实际工作中发现你这方面工作水平低,然后试用一过可能就让你卷包走人;另一种情况就是遇到这方面知识很有经验的面试官,那么不用想了,你的那点理论知识别人根本不屑于一问好么,要问都是问你实际操作中遇到了哪些坑,然后又是如何解决的这些坑,还会问面试官自己曾经遇到的坑,然后让你告诉他解决方案(当然面试官自己知道解决方案),以上这些,全部是需要你真正经手操作过以后才能知道的,然后你当场就Hold不住了,然后被婉拒。
另外不管你是通过看书,还是通过网上查资料学习,反正结论就是:Just do it!
回到题主的问题,如果题主认识任何一个有这方面技术经验的人士,一定要去请教,因为这种人不仅可以推荐给你靠谱的书籍和资料,更重要的是他能够清楚地知道如何学习这方面的知识能够最大限度避免走弯路,因为这人曾经已经走过弯路了,啊哈哈!!坐等这方面技术有经验的人士出现,我对这方面技术也挺感兴趣!
PS:本人互联网公司技术人员,并参与过多次面试。看书,看代码,自己写,自己测试。
看书的目的是适当理解这些内容背后的原理或设计思路,不强求全部深究,但起码要看到相关的技术名词或图的时候可以快速的想到背后的技术栈,然后再翻书或搜索下更细节性的内容。
看代码肯定就是瞅瞅别人如何实现啊,补充书里略过的实现部分,同样造个轮子别人能用3年,你的挺不住3个月,不得跑人家作坊里取取经么,但是别忘记看代码前仔细看看背景介绍,软件都是有特定应用范围的,不然你看半天代码都不知道为什么这个地方要这么处理。
道理都懂点了,也被大牛的代码熏陶了好一阵子,自己动手写吧!写起来才发现看似自己都明白了,都领会了,其实写的那叫一个坑坑绊绊,多写几次吧,加深印象。
测试不能少,你自己为什么认为这么写就能扛得住?臆想不行!咱自己能压出来,不然你说的自己都不信。
以上是我自己学东西的路线,我自己就这么干的。当初为了学如何自己做性能测试,如何建立数据模型,我特意搬到测试组去写代码,偷学。。。。当然是看书了……
#深入理解Java虚拟机
#Java并发编程实战
#MongoDB权威指南
#Netty权威指南
#ICE协议官方文档
#MQTT协议官方文档
#ActiveMQ官方文档
#Redis入门指南
Java并发编程与高并发解决方案
网盘地址:https://pan.baidu.com/s/1mEDnPAnHVKF9mQ3TR1j-JA 密码: y9ha
备用地址(腾讯微云):微云分享 密码:e324w9
学会高并发处理思路与手段,让跳槽面试从容不迫,并发与高并发是面试的重要考察点,常问面试问题与答案都在这里了!
无论面试还是实际开发,几乎都会涉及并发相关知识及高并发相关场景处理,如果你想系统的学习一下并发编程
并了解一下实际的高并发场景及应对方案,那这门课就是为你准备的。
第1章 课程准备
第2章 并发基础
第3章 项目准备
第4章 线程安全性
第5章 安全发布对象
第6章 线程安全策略
第7章 J.U.C之AQS
第8章 J.U.C组件拓展
第9章 线程调度-线程池
第10章 多线程并发拓展
第11章 高并发之扩容思路
第12章 高并发之缓存思路
第13章 高并发之消息队列思路
第14章 高并发之应用拆分思路
第15章 高并发之应用限流思路
第16章 高并发之服务降级与服务熔断思路
第17章 高并发之数据库切库分库分表思路
第18章 高并发之高可用手段介绍
第19章 课程总结
源码对并发有处理。
说一点自己的浅薄经验,高并发下,接受数据是来不急处理的,会导致阻塞。
建议用专门的线程接收数据。不负责处理,放在队列里面。
然后有专门的线程去处理,把接收和处理分开。这是基本原则。
如果处理数据过程太慢而队列里堆积过多,就需要监测队列大小,如果过大,就启动多个线程。至于启动多少线程,可以写算法优化。记得空闲时关闭。
看书好了,大部分所谓的要求高并发,大数据公司其实都没做过真正的高并发工作,有些公司的员工甚至连数据库索引都用不利索,看几本书很容易忽悠过去。
不过对淘宝百度这种公司无效。这种真做过高并发的企业没做过的估计很难忽悠过去。多看看算法书然后说自己算法很强也许可以?先尝试着实现银行的叫号系统吧:2台发号机生成号码,5个窗口消费号码。
然后再试试实现电梯调度系统。
我已经做了两年的java web了,昨天面试官问我多线程的问题,一开始用我在书里看到的概念给他讲,后面让我将项目中用到的多线程,我只能说,从来没用过,因为确实没有用过,他问我们是怎么解决excel超过10万条数据的解析,我给他说,我们会限制用户上传的文件大小,他建议我平时多了解多线程方面的知识,最近在想办法解决面试问道的问题,好像面试都喜欢考多线程
今天下午收到了消息,面试通过了,真的很意外,之前还担心自己对多线程不懂,通过不了
现有的问题,能不能换个方式解决,比如任务处理数据,企业开发常见功能,能不能多线程处理?答案是肯定的。能不能用线程池,答案还是肯定的。怎么同步是不是要用下CountDownLatch。每个问题都有不同处理方法,希望对题主有帮助。
如果你是新手的话,推荐看这本书:Java并发编程系统与模型云帆_Java并发编程系统与模型全文阅读_百度阅读。对整个java并发有一个体系的了解
里面讲的很详细。好像作者在一直更新中。
马士兵java高并发编程学习视频 合集
链接: https://pan.baidu.com/s/1bBWshC 密码: imu1