如何快速学会一项技能

如何快速学会一项技能分成四步

第一步:确定目标,充足准备

第二步:清除障碍,高效学习

第三步:分解目标,及时反馈

第四步: 定期复习

举个例子, 我现在要掌握并发和多线程相关考点,那么第一步我要确定我要在多长时间内掌握到哪种程度。由于自己之前就了解并发与多线程,只是没有把知识i点串起来,所以我给自己的时间是6小时,要达到的目标是可以说出下面五个问题的答案。

1、要理解线程的同步与互斥的原理,包括临界资源、临界区的概念,知道重量级锁、轻量级锁、自旋锁、偏向锁、重入锁、读写锁的概念。

2、要掌握线程安全相关机制,例如 cas、synchronized、lock三种同步方式的实现原理、要明白threadlocal是每个线程独享的局部变量,了解threadlocal使用弱引用的ThreadLocalMap保存不同的threadlocal变量。

3、要了解JUC中的工具类的使用场景与主要的几种工具类的实现原理,例如reentrantlock,concurrenthashmap、longadder等实现方式

4、要熟悉线程池的原理、使用场景、常用配置,例如大量短期任务的场景适合使用cached线程池;系统资源比较紧张时,可以选择固定线程池。

另外注意慎用无界队列,可能会有oom的风险。

5、可以写上面这些知识点的使用demo

第二步,我晚上的学习效率比较高,计划在16-18号这三天,每天抽出两小时,不分心,聚精会神的完成

第三步, 其实在第一步里就已经把问题给分解啦,这些问题涉及了并发相关的基础概念,锁的种类与实现,threadlocl的原理与使用,并发工具类,线程池的原理与合理使用

第四步: 将这些知识点记录下来,并每周花两小时复习一次。

原文地址:https://www.cnblogs.com/scru/p/14890299.html