目录
1.【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
2.【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
3.【强制】线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。
4.【强制】线程池使用ThreadPoolExecutor去创建
5.【强制】SimpleDateFormat 是线程不安全的类
6.【强制】必须回收自定义的 ThreadLocal 变量记录的当前线程的值
8.【强制】对多个资源、数据库表、对象同时加锁时,需要保持一致的加锁顺序,否则可能会造成死锁。
14.【推荐】使用 CountDownLatch 进行异步转同步操作
17.【参考】volatile面对多写场景,同样无法解决线程安全问题。
19.【参考】ThreadLocal 对象使用 static 修饰,ThreadLocal 无法解决共享对象的更新问题。
一、前言
现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:五花八门的错误码会人为地增加排查问题的难度;数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;工程结构混乱导致后续项目维护艰难;没有鉴权的漏洞代码容易被黑客攻击等。依据约束力强弱及故障敏感性,规约依次分为【强制】、【推荐】、【参考】三大类。在延伸的信息中,“说明”对规约做了适当扩展和解释;“