多线程知识点资源整合

1.线程安全

所谓线程安全是指一个类(对象或者方法)在多个线程访问情况下,始终表现出正常的行为,那么这个类(对象或者方法)就被称之为线程安全

2.synchronized

synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁。限制性synchronizeed关键字的方法,先持有该方法所属的对象的锁,两个对象,线程上获得两个不同的锁,互不影响。    有一种情况是相同锁,即静态方法加synchronized关键字,表示锁定class类,类一级别的锁独占.class类

3.在我们对一个对象方法枷锁的时候,要考虑业务的整体性,即为 setValue/getValue 方法同时加锁,保证业务的整体原子性

4.关键字synchronized有锁重入功能,也就是在使用synchronized关键字时,当一个线程获得了一个对象的锁后,再次请求此对象时可以获得该对象的锁(参见我的另一篇博客子类继承父类,重写父类的synchronized方法,两个synchronized方法的锁对象的问题

5.对于web程序,异常释放锁的情况,如果不及时处理,可能会对程序业务逻辑产生错误。

比如现在执行一个队列任务,很多对象都去第一个对象正确执行完毕再去释放锁,但第一个对象执行带锁的方法时产生了异常,导致业务逻辑没有正常执行完毕,就释放了锁。后续对象执行都是错误逻辑

6.volatile

使变量在多个线程间可见,不具备原子性(使用Automic型数据结构)

tips:具体见我的另一篇博客 Java多线程之内存可见性和原子性:Synchronized和Volatile的比较

 

7.线程通信

https://blog.csdn.net/jisuanji12306/article/details/86363390讲的很详细

6.join方法

https://blog.csdn.net/u013425438/article/details/80205693

7.线程池类型

https://www.cnblogs.com/yh2two/p/11753816.html

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值