学习阿里巴巴开发手册-补充
来源:互联网 发布:网络电影发行 编辑:程序博客网 时间: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则没有这个问题
2.创建线程或线程池时 请指定有意义的线程名称。
3.线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。
4.线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
5.SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果是,必须添加锁,或者使用DateUtils工具类
6.高并发时,同步调用应该去考量锁的性能损耗,能用无锁数据结构就不用锁,能用锁区块,就不要锁整个方法体,能用对象锁就不要用类锁
7.多个资源、数据库表,对象同时加锁时,需要保持一致的加锁顺序
8.并发修改同一记录时,避免更新丢失,需要加锁,要么在应用层加锁,要么在缓存加锁,要么在数据库层使用锁,使用version作为更新数据依据
如果每次访问冲突概率小于20%,推荐使用乐观锁,乐观锁重试次数不得小于3次,否则使用悲观锁。
9.多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出异常,其他任务便会自动终止运动、使用ScheduledExecutorService则没有这个问题
10.未完
阅读全文
0 0
- 学习阿里巴巴开发手册-补充
- 学习阿里巴巴开发手册-1
- 学习阿里巴巴开发手册-2
- 学习阿里巴巴开发手册-3
- 学习阿里巴巴开发手册-4
- 阿里巴巴java开发手册学习
- 学习阿里巴巴开发手册-5
- 学习阿里巴巴开发手册-6
- 学习阿里巴巴开发手册-7
- 学习阿里巴巴开发手册-8
- 学习阿里巴巴开发手册-9
- 学习阿里巴巴开发手册-10
- 学习阿里巴巴开发手册-11
- 学习阿里巴巴开发手册-12
- 学习阿里巴巴开发手册-13
- 学习阿里巴巴开发手册-14
- 学习阿里巴巴开发手册-15
- 阿里巴巴 Java 开发手册--集合学习笔记
- for循环遍历对象取里面的某个字段的值
- equal和hashcode之间的关系
- [编程题] 汽水瓶
- JavaScript之引用类型
- 数字图像基础
- 学习阿里巴巴开发手册-补充
- 10.1 HTTP发展中存在的问题
- loadrunner测试下载服务器性能
- Eclipse debug时提示“Unable to install breakpoint in class.XXXX“
- 安装ipa报错:“未能同步iphone 因为这台电脑不再被授权”
- jquery 获取上传图片的宽高和预览图
- JavaScript的历史
- action属性获取值
- UE4.18新特性(英文版)