阿里开发规约之编程规约(4)

本文探讨了Java并发编程中的关键概念,如线程安全的单例模式、线程池管理、线程名称设置、资源锁定策略和线程局部变量管理。强调了使用线程池、避免Executors陷阱、优化锁机制以及并发操作中的死锁预防。
摘要由CSDN通过智能技术生成

前言

哈喽,大家好,我是Java选手牛皮糖。本周也是个值得兴奋的日子,没有征兆的下起雪来了。下了一整天的雪,可惜是在上班,不然定要约上三五好友去搓上一顿火锅。吃着火锅唱着歌,赏着雪不要太爽。
在这里插入图片描述

正文

上回一块学习了项目中十分常用的集合处理等,那这回我们就一块来看看并发处理

并发处理

1、 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
说明:资源驱动类、工具类、单例工厂类都需要注意。
单例相关
定义:单例类只允许一个实例存在。
适用场景:

  • 需要生成唯一序列的环境
  • 需要频繁实例化然后销毁的对象。
  • 创建对象时耗时过多或者耗资源过多,但又经常用到的对象。
  • 方便资源相互通信的环境。

项目中使用的场景:

  • 工具类。
  • 配置文件。

2、【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
正例:自定义线程工厂,并且根据外部特征进行分组,比如,来自同一机房的调用,把机房编号赋值给
whatFeatureOfGroup

public class UserThreadFactory implements ThreadFactory {
    private final String namePrefix;
private final AtomicInteger nextId = new AtomicInteger(1);
// 定义线程组名称,在利用 jstack 来排查问题时,非常有帮助
UserThreadFactory(String whatFeatureOfGroup) {
   
namePrefix = "From UserThreadFactory's " + whatFeatureOfGroup + "-Worker-";
}
@Override
public Thread newThread(Runnable task) {
   
String name = namePrefix + nextId.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值