`

关于同步详细

    博客分类:
  • java
阅读更多
在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(准确意义上是隔离了多个线程中的数据,而不是针对共享数据的操作)
分享到:
评论

相关推荐

    PADS中LOGIC同步详细操作

    为了实现高效的设计流程,以下将详细介绍在PADS软件中进行LOGIC同步操作的步骤和相关知识点。 ### 打开原理图文件并启动同步 1. 打开PADS软件,并且首先打开需要同步的原理图文件。 2. 在软件界面上方的TOOL菜单下...

    MySQL主从同步和主主同步详细过程

    超详细MySQL主从配置和主主同步总结。。。。。。。。。

    三种帧同步算法的MATLAB代码_帧同步matlab_帧同步算法_帧同步_

    以上就是关于三种帧同步算法的详细解释及其MATLAB代码实现的相关知识。在实际应用中,选择合适的同步策略取决于具体的应用场景,例如信道条件、系统资源和性能要求。通过学习和实践这些算法,不仅可以增强理论知识,...

    sew 同步技术手册

    文档提供了关于如何进行项目规划的详细信息。 #### 3.4 同步启动/停止 同步启动和停止是确保多电机系统同步运行的重要功能。 ### 4. 工作原理和功能 文档中详细描述了内部同步操作的控制方法,主状态机的组成,...

    使用Kettle同步mysql数据,增量同步教程执行步骤

    下面是一个使用Kettle进行MySQL增量同步的详细步骤教程: 1. **创建数据库连接**: - 在Kettle的Spoon界面中,创建新的转换,然后添加“数据库连接”组件,输入MySQL数据库的相关信息,如主机名、端口、用户名、...

    桌面同步软件,同步更新桌面

    以下是关于桌面同步软件及其相关知识点的详细介绍: 1. **同步概念**:同步是指将数据从一个源复制到另一个目标,同时保持两个或多个系统中的信息一致。在桌面同步中,这通常涉及文件、设置、应用程序状态等。 2. ...

    mysql同步,双向同步

    在这个资源中,我们将详细介绍如何配置 MySQL 双向同步。 MySQL同步的重要性 在数据时代,数据的实时性和一致性变得非常重要。 MySQL同步可以确保多个数据库服务器之间的数据保持实时同步,从而避免数据不一致的...

    最新同步电机学习详细课件

    通过详细的学习,我们可以更好地理解同步电机如何在发电、电动以及提供同步动力等场景下发挥作用,为各类工业应用和电力系统提供稳定可靠的性能支持。 首先,同步电机之所以得名,是因为它的转速与电网频率之间存在...

    UWB DW1000有线同步手册

    它们的内容无法完全准确识别,但根据上下文可以推测,这些表和图提供了关于不同有线同步实施方式的效果、外部时钟规格、同步信号时间规格,以及OSTR性能在工艺和温度变化下的表现等详细信息。 总结来说,UWB DW1000...

    麒麟虚拟机同步器2.2p版

    首先,我们来详细了解“同步器”这一概念。在IT领域,同步器是一种用于协调并发操作的机制,它确保了在多线程或分布式系统中的数据一致性。在虚拟机环境下,同步器的作用尤为关键,因为每个虚拟机可能运行着不同的...

    java数据实时同步系统

    实时同步系统应具备详细的日志记录和性能监控,以便于排查问题和优化系统性能。 9. **定时同步系统**: 从文件名"定时同步系统"推测,该系统可能包含一个定时任务调度组件,如Quartz或Spring Scheduler,用于定期...

    sql server 同步复制功能详细介绍

    关于sql server 发布 订阅 同步数据的详细教程。。

    单bit信号跨时钟域的方法:电平同步器+边沿同步器+脉冲同步器

    以下将详细讨论这些同步器的工作原理、设计方法以及它们在Verilog中的实现。 首先,电平同步器(Level Synchronizer)是最基本的跨时钟域解决方案。它通常由两个D触发器组成,每个触发器工作在不同的时钟域。信号...

    网络游戏帧同步资料

    本资料集包含了关于帧同步的深入解析,对于想要理解网络游戏运行机制,特别是对《守望先锋》、《王者荣耀》、《NBA》等竞技类游戏背后的同步原理感兴趣的开发者或玩家来说,具有很高的学习价值。 帧同步的基本概念...

    载波同步和定时同步

    本文将详细探讨如何实现PSK(Phase Shift Keying,相移键控)解调中的载波同步和码元定时同步算法。 首先,载波同步的目标是从接收的调制信号中恢复出与原始载波信号同频同相的本地载波信号。在2PSK(Binary PSK,...

    数据库同步操作手册

    数据库同步是一种确保数据在...通过上述知识点的总结,读者可以获得关于如何使用特定软件工具进行ORACLE数据库同步的全面理解和操作指南。在实际操作中,应根据自己的数据库环境和同步需求,选择合适的同步类型和设置。

    自同步局域网免费文件同步工具

    "本软件下载说明.htm"可能是提供关于如何下载和安装该工具的指南,详细解释了下载链接、存储位置以及安装步骤等信息,以帮助用户顺利进行安装。 "本软件使用说明.txt"是一个文本文件,包含软件的使用教程和操作指南...

    学习游戏脚本制作:按键精灵键鼠同步器源码分享.pdf

    本文将从同步的前提、思路大剖析、代码实现等方面对按键精灵键鼠同步器进行详细的讲解。 一、同步的前提 为了实现键鼠同步,需要满足两个条件:第一,同步的两个窗口需要是同一个应用窗口,并且窗口大小要相同;第...

Global site tag (gtag.js) - Google Analytics