学习阿里巴巴开发手册-补充

来源:互联网 发布:网络电影发行 编辑:程序博客网 时间:2024/05/20 22:41
1.获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
2.创建线程或线程池时 请指定有意义的线程名称。
3.线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。
4.线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
5.SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果是,必须添加锁,或者使用DateUtils工具类
6.高并发时,同步调用应该去考量锁的性能损耗,能用无锁数据结构就不用锁,能用锁区块,就不要锁整个方法体,能用对象锁就不要用类锁
7.多个资源、数据库表,对象同时加锁时,需要保持一致的加锁顺序
8.并发修改同一记录时,避免更新丢失,需要加锁,要么在应用层加锁,要么在缓存加锁,要么在数据库层使用锁,使用version作为更新数据依据
  如果每次访问冲突概率小于20%,推荐使用乐观锁,乐观锁重试次数不得小于3次,否则使用悲观锁。
9.多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出异常,其他任务便会自动终止运动、使用ScheduledExecutorService则没有这个问题

10.未完