以项目为牵引   全程实训   以就业为导向  以动手能力为目标

一样的教育    不一样的结果     全国咨询热线:400-078-8286

Java基础入门之java 同步

2018-11-07 来源:桂林志成IT教育中心  点击量:690
摘要:Java基础入门之java 同步:多线程访问一个对象时,不用考虑这些线程在运行时环境下的调度与交替执行,也不需要额外的同步或调用方进行任何协调操作,调用这个对象的行为都可以获得正确的结果。

定义

线程安全:多线程访问一个对象时,不用考虑这些线程在运行时环境下的调度与交替执行,也不需要额外的同步或调用方进行任何协调操作,调用这个对象的行为都可以获得正确的结果。

 

同步方法

互斥

1、Synchronized

同一个线程可重入;会陷入内核,属于重量级锁;非公平锁

2、Reentrantlock:可重入锁

默认非公平,可设置;可中断;绑定多个条件;如果不用这些特性,提倡使用Synchronized

 

非阻塞同步

1、Cas

2、无同步方案

(1)可重入代码

(2)线程本地存储

 

锁优化

1、自适应自旋锁

不放弃cpu,忙循环。减少线程切换开销。

2、锁消除

3、锁粗化:防止循环内的加锁

4、轻量级锁:适用于同步无竞争

Cas + mark word实现;

偏向锁:无竞争情况下不加锁

 

ConcurrentHashMap : 使用分段加锁实现。

热门课程

相关文章>

合作伙伴