我在看JUC包的源码时,感觉完全就是遥不可及。Doug Lea的设计非常复杂而又精密,经常一个if判断里就做了很多的事,并且存在大量细节处的性能优化,如果以一张椅子来打比方的话,椅子上的每一个弧度,每一处角度看似稀松平常,实际上都经过统计学和力学等精密计算做了最大限度的优化。
逻辑这么复杂的代码虽然要读懂不是一件特别困难的事,但是作为一个开发者,理清这些逻辑,并用代码一步一步实现出来,就让我觉得非常遥不可及了,我很好奇,这种代码的开发过程是怎样的,需要具备哪些知识
我在看JUC包的源码时,感觉完全就是遥不可及。Doug Lea的设计非常复杂而又精密,经常一个if判断里就做了很多的事,并且存在大量细节处的性能优化,如果以一张椅子来打比方的话,椅子上的每一个弧度,每一处角度看似稀松平常,实际上都经过统计学和力学等精密计算做了最大限度的优化。
逻辑这么复杂的代码虽然要读懂不是一件特别困难的事,但是作为一个开发者,理清这些逻辑,并用代码一步一步实现出来,就让我觉得非常遥不可及了,我很好奇,这种代码的开发过程是怎样的,需要具备哪些知识
我觉得要完全读懂就是特别困难。特别是cas的使用,要考虑的步骤不要太多,如果让我自己写,几行代码,我可能要想好久。
为啥要跟 Java 之父们比……
况且 Doug Lea 也不是没写出过 Bug 来,有不少 J.U.C 里的 Bug 都是随 JDK 发布以后被社区里的其他人挑出来的。
但你要非想学到点儿什么的话,那就是这些 “XX 语言之父” 们都不是只掌握一门语言的,而是对操作系统、编译原理、底层数据结构和算法都有着相当深刻的认识。
你比如说 PHP 之父 Rasmus Lerdorf,同时也就精通 C 和 Perl。
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
重要的是积累和沉淀,千万不要急于求成,把基础打牢,慢慢的你都明白了;