zoukankan      html  css  js  c++  java
  • 如何快速学会一项技能

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

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

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

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

    第四步: 定期复习

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    继承(JAVA)
    第一个Java应用
    Java面向对象编程
    学生管理系统(分层开发)
    ComboBox的数据联动
    二进制、八进制、十进制、十六进制之间的转换
    C# using的一些事
    JVM最多支持多少个线程?
    Java日志体系居然这么复杂?——架构篇
    java 架构之路(队列)kafka
  • 原文地址:https://www.cnblogs.com/scru/p/14890299.html
Copyright © 2011-2022 走看看