Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

        
AI编程,程序员挑战年入30~100万高级指南 - 职业规划
SpringBoot+SpringSecurity+Vue权限系统高级实战课程        

IDEA永久激活

Java微信小程序电商实战课程(SpringBoot+VUe)

     

AI人工智能学习大礼包

     

PyCharm永久激活

66套java实战课程无套路领取

     

Cursor+Claude AI编程 1天快速上手视频教程

     
当前位置: 主页 > Java文档 > Java基础相关 >

java并发规范(线程及锁) PDF 下载


时间:2020-07-26 11:28来源:http://www.java1234.com 作者:小锋  侵权举报
java并发规范(线程及锁) PDF 下载
失效链接处理
java并发规范(线程及锁) PDF 下载

本站整理下载:
提取码:z1s5 
 
 
相关截图:
 
主要内容:

Rule 1. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯
Rule 2. 【推荐】尽量使用线程池来创建线程
Rule 3. 【强制】线程池不允许使用 Executors去创建,避资源耗尽风险,推荐用ThreadPoolExecutor创建线程池
Rule 4. 【强制】正确停止线程
Rule 5. 【强制】编写可停止的Runnable
5.1 正确处理InterruptException
5.2 主循环及进入阻塞状态前要判断线程状态
Rule 6. 【强制】Runnable中必须捕获一切异常
Rule 7. 【强制】全局的非线程安全的对象可考虑使用ThreadLocal存放
Rule 8. 【推荐】缩短锁
8.1 能锁区块,就不要锁整个方法体;
8.2 能用对象锁,就不要用类锁。
Rule 9. 【推荐】选择分离锁,分散锁甚至无锁的数据结构
Rule 10. 【推荐】基于ThreadLocal来避免锁
Rule 11. 【推荐】规避死锁风险
Rule 12. 【推荐】volatile修饰符,AtomicXX系列的正确使用
Rule 13. 【推荐】延时初始化的正确写法
 
Rule 1. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯
(1)创建单条线程时直接指定线程名称
    Thread t = new Thread();
    t.setName("cleanup-thread");
 
(2) 线程池则使用guava或自行封装的ThreadFactory,指定命名规则。
ThreadFactory threadFactory = new ThreadFactoryBuilder().
setNameFormat(threadNamePrefix + “-%d”).build();
ThreadPoolExecutor executor = new ThreadPoolExecutor(…, threadFactory, …);
 
Rule 2. 【推荐】尽量使用线程池来创建线程
除特殊情况,尽量不要自行创建线程,更好的保护线程资源。
同理,定时器也不要使用Timer,而应该使用ScheduledExecutorService。
因为Timer只有单线程,不能并发的执行多个在其中定义的任务,而且如果其中一个任务抛出异常,整个Timer也会挂掉,而ScheduledExecutorService只有那个没捕获到异常的任务不再定时执行,其他任务不受影响。
Rule 3. 【强制】线程池不允许使用 Executors去创建,避资源耗尽风险
Executors返回的线程池对象的弊端 :

 

------分隔线----------------------------


锋哥推荐