• 工作学习计划


     

    关于日志

    我司目前规范采用slf4j + logback

    应用中不可直接使用日志系统(Log4j、Logback)中的API, 而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维 护和各个类的日志处理方式统,日志文件推荐至少保存 15天,因为有些异常具备以“周” 为频次发生的特点。 

    对trace/debug/info级别的日志输出,必须使用条件输出 形式或者使用占位符的方式

    关于jvm

    关于多线程

     1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安 全。

    2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回 溯。

    3. 【推荐】线程资源必须通过线程池提供,不允许在应用中自行显式创建 线程

    4. 【推荐】线程池不是使用 Executors去创建,而是通过 ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的 运行规则,规避资源耗尽的风险

    5. 【强制】SimpleDateFormat 是线程不安全的类,一般不要定义为 static变量,如果定义为static,必须注意线程安全问题。

    6. 【强制】高并发时,同步调用应该去考量锁的性能损耗。

    7. 【强制】对多个资源、数据库表、对象同时加锁时,需要保持一致的加 锁顺序,否则可能会造成死锁。

    8. 【强制】并发修改同一记录时,避免更新丢失,要么在应用层加锁,要 么在缓存加锁,要么在数据库层使用乐观锁,使用 version作为更新依据

    9. 【强制】多线程并行处理定时任务时,Timer运行多个TimeTask时,只要 其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用 ScheduledExecutorService则没有这个问题

    10. 【推荐】使用CountDownLatch进行异步转同步操作。

    11. 【推荐】避免Random实例被多线程使用,虽然共享该实例是线程安全的, 但会因竞争同一seed 导致的性能下降。

    12. 【推荐】通过双重检查锁定(double-checked locking)(在并发场景) 实现延迟初始化的优化问题隐患。

    13. 【参考】volatile解决多线程内存不可见问题的限制

    14. 【参考】 HashMap在容量不够进行resize时由于高并发可能出现死链, 导致CPU飙升,在开发过程中注意规避此风险

    15. 【参考】ThreadLocal无法解决共享对象的更新问题,ThreadLocal对象 建议使用static修饰。

    计划 回去一定要跟一个springBoot的项目视频。

  • 相关阅读:
    python 数据类型 基础第二天
    Python基础第一篇
    前言、入门程序、常量、变量
    win10打开移动热点让手机连接上网教程
    win10移动热点问题
    博客园快速美化
    Idea提示没有符号类错误解决
    mybatis复习01
    test
    d190305面试题01总结
  • 原文地址:https://www.cnblogs.com/Treesir/p/11340510.html
Copyright © 2020-2023  润新知