浅谈Java多线程与并发原理

凌洛 2019-07-18

编程语言 Java核心技术 架构 java 性能 线程 Image 同步 多线程 class 存储

前序

线程安全问题的主要诱因

  1. 存在共享数据(也称临界资源)
  2. 存在多条线程共同操作这些共享数据

解决方法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再对共享数据进行操作

互斥锁的特征

互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程协调机制,这样在同一时间只有一个线程对需要同步的代码块(复合操作)进行访问。互斥性也称为操作的原子性。
可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁时应该获得最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作,从而引起不一致。
注:synchronized 锁的不是代码,锁的是对象

获取锁的分类:获取对象锁、获取类锁

获取对象锁的两种用法:

  • 同步代码块(synchronized(this),s
登录 后评论
下一篇
冒顿单于
8298人浏览
2019-08-28
相关推荐
JAVA 通关秘籍
2693人浏览
2018-04-09 10:43:00
后端架构师技术图谱
2918人浏览
2018-05-07 19:32:00
JVM调优浅谈
1198人浏览
2015-11-27 21:19:00
面试整理
1982人浏览
2018-07-23 08:15:02
netty原理分析
895人浏览
2019-01-03 17:11:00
浅谈java内存模型
1149人浏览
2017-07-03 10:19:00
浅谈线程
631人浏览
2016-05-22 00:02:45
浅谈JVM的GC策略
830人浏览
2017-11-07 22:00:00
浅谈Handler
754人浏览
2017-12-24 14:08:00
浅谈Tomcat服务器优化方法
1660人浏览
2019-01-03 16:49:08
4
5
1
34342