在Java中实现同步的四种方法:
1.Volatile(易变的):volatile修饰的成员变量在每次线程访问时,都强迫从共享内存中重读该成员变量的值,且当成员变量发生变化时,强迫线程将变化值回写到共享内存.
1).特点:这样在任何时刻,其他线程总是看到被volatile修饰的成员变量为同一个值(状态)<在java语言规范中指出,为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比,这样多个线程同时与某个对象交互时,就必须要注意到要让线程即使的得到共享成员变量的变化.而volatile关键字就是提示VM,对于此成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互>;
2).使用技巧:在多个线程访问的成员变量上使用volatile关键字进行修饰.当要访问的变量已在synchronized代码块中,或者为常量时,就不必使用volatile修饰了.
3).volatile变量具有synchronized的可见性特性,但是不具备原子特性.这就是说线程能够自动发现volatile变量的最新值.volatile变量可用于提供线程安全,但是只能应用与非常有限的一组用例:多个变量之间或者某个变量的当前值与修改后值之间没有约束.
4).使用情况:要使volatile变量提供理想的线程安全,必须同时满足下面两个条件:对变量的写操作不依赖于当前值和该变量没有包含在具有其他变量的不变式中.
2.wait()和notify(),notifyAll():
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll())后本线程才进入对象锁定池准备获得对象锁进入运行状态.
sleep是线程类的方法,导致此线程暂停执行指定时间,把执行机会给其它线程,但是监控状态依然保持,到时候会自动恢复,调用sleep不会释放对象锁.
3.synchronized方法和代码块
4.ThreadLocal(准确意义上是隔离了多个线程中的数据,而不是针对共享数据的操作)
分享到:
相关推荐
LOGIC同步详细操作,pads运用,pads与layout同步,eco to pcb操作详细
超详细MySQL主从配置和主主同步总结。。。。。。。。。
关于sql server 发布 订阅 同步数据的详细教程。。
详细讲述同步电机的运行 PPT格式 为学习同步电机 发电 认识有帮助
是我的“Kettle数据库同步源码”对应的详细设计文档; 包含流程图 + 数据表结构设计!
linux线程间同步详细说明
详细了解一下同步电机的优缺点及工作原理.docx详细了解一下同步电机的优缺点及工作原理.docx详细了解一下同步电机的优缺点及工作原理.docx详细了解一下同步电机的优缺点及工作原理.docx详细了解一下同步电机的优缺点...
详细了解一下同步电机的优缺点及工作原理.pdf详细了解一下同步电机的优缺点及工作原理.pdf详细了解一下同步电机的优缺点及工作原理.pdf详细了解一下同步电机的优缺点及工作原理.pdf详细了解一下同步电机的优缺点及...
详细的同步日志、进度显示;更有远程控制、即时消息传送和文件传输功能。无需额外的硬件资源,通过非常简单的步骤利用现有的计算机、移动终端等资源,便能搭建起一个功能强大、高效稳定的全自动同步备份的私有云环境...
基于最小二乘法的永磁同步电机四参数辨识仿真模型并带有详细资料
SQLServer 2000 数据库同步详细步骤 两个服务器;SQLServer 2000 数据库同步详细步骤 两个服务器
诸如光伏风力涡轮机和波浪能转换器之类的可再生能源使用功率转换器... 详细介绍了基于当前同步检测方案的动态控制方案以及电源管理控制。 最后,我们进行了数值模拟,并通过在微网格结构中的实验结果验证了该方案。
详细的使用方法,请参考系统的帮助文档。 文件同步示意图: 同步方向 按钮 联机同步 移动存储同步 ----------------------------------------------------- |源端同步 | |源端-->U盘 | | | 单向同步 |...
java数据实时同步系统,把远程数据库数据实时同步到本地数据库
ftp同步,设计,实现ftp文件下载,非常实用的资料
针对现有的WSN时间同步算法不适用于数据采集时间同步的问题,以基于WSN的某洗煤厂设备点检系统电动机振动信号采集为例,提出了一种新的延时时间广播同步算法,详细分析了该算法的原理、在单跳WSN中的实现过程及其时间...
docker-harbor镜像同步详细笔记文档总结
Linux下多线程及多进程及同步与互斥编程详细介绍
kettle详细实现Oracle数据库通过时间戳方式数据增量同步案例
Buck同步整流电路MOSFET损耗的计算