`

刷新内存的问题

 
阅读更多

1. 请教一个问题:代码如下,当线程2运行的时候发现O.b = 2了,这说明O.a也更新了,但关键的问题是b是volatile的,会立即刷新内存,那么b的值肯定是立刻写回到主内存的 。但是因为a是取到工作内存中的,并在工作内存中更新,最后才会写回到主内存中,会不会有可能当b在主存更新了的时候,a没有被更新呢,线程2看到的值还是1?或者说代码是顺序执行的,只有当a的值写回到主内存中才会去执行更新b的代码? 答案应该是前面这种情况,只有b才能即时的更新到主内存

public class ObjectA
{
    public int a = 1;
    public volatile int b = 1;
}

public class Thread1
{
    private ObjectA o;

    Thread1(ObjectA o)
    {
	this.o = o;
    }

    public void run()
    {
	o.a = 2;
	o.b = 2;
    }
}

public class Thread2
{
    private ObjectA o;

    Thread1(ObjectA o)
    {
	this.o = o;
    }

    public void run()
    {
	System.out.println(o.b);
	System.out.println(o.a);
    }
}
分享到:
评论

相关推荐

    刷新内存SPD参数,提高内存性能

    刷新内存SPD参数是提升内存性能的一种高级技术手段,尤其对于那些追求极致性能或解决内存兼容性问题的用户而言。借助Thaiphoon Burner等工具,即便是非专业用户也能安全有效地进行SPD信息的读写操作,从而在兼容性与...

    VC 自动刷新 物理内存查询

    通过双线程和缓冲技术 自动刷新 物理内存查询

    内存刷新SPD工具集,让普通内存变身

    如果你的内存有很大的潜质,比如DDR2 800可以稳定工作在DDR2 1066,DDR3 1600可以变成DDR3 2000,金士顿可以变成宇瞻等其他品牌,或者杂牌变成品牌内存,那么你就可以把它变成一个真正的DDR2 1066,这款工具可以根据...

    SPD 刷新修改工具及信息

    总的来说,"SPD刷新修改工具"是一个针对内存配置的专业工具,用于解决特定的硬件兼容性或性能问题。正确理解和使用这些工具,可以帮助我们优化电脑性能,但同时也需要谨慎对待,以免引发不必要的问题。在尝试刷新或...

    ListView刷新UDP问题 谁能解决刷新

    5. **内存管理**:如果数据量大,需注意内存泄漏问题,避免因为缓存过多数据导致应用内存占用过高。 6. **数据结构设计**:为了高效地处理UDP数据,可以设计合适的数据结构,比如使用ArrayList或者LinkedList,根据...

    windows编程中图形刷新问题

    ### Windows编程中图形刷新问题详解 #### 一、问题背景及概念 在Windows编程中,图形刷新是一个常见的问题,尤其是在绘图过程中。当用户通过鼠标完成图形绘制后,如果发生窗口大小变化、最大化/最小化窗口或是窗口...

    Iframe内存泄露分析

    这种问题在 Ajax 盛行以前并不是什么大问题,因为都是通过页面跳转和刷新来进行与服务端的交互,但是现在情况不一样了,很多应用广泛应用 Ajax 和 iframe,结果内存泄漏成了很多富客户端应用的隐患。 Iframe 内存...

    VC在监测系统中图形刷新问题的研究

    通过对内存虚拟屏幕技术的研究和应用,我们可以有效地解决工业在线监测系统中图形刷新导致的屏幕闪烁问题。这种方法不仅可以提高图形显示的流畅度,还能够保证图像质量不受损失,从而提升了系统的整体性能和用户的...

    FragmentPagerAdapter刷新fragment最完美解决方案

    在实际应用中,你可能还需要考虑线程同步、内存泄漏等问题。例如,更新`Fragment`数据时应确保在UI线程中进行,避免使用弱引用以防止内存泄漏等。 通过上述方式,我们不仅实现了对`Fragment`的高效刷新,还保持了`...

    行业分类-电子-关于可靠保持内存自刷新状态的低功耗电路的介绍分析.rar

    1. **内存自刷新原理**:解释自刷新的工作机制,包括如何定时刷新内存单元,以及如何检测和纠正错误。 2. **低功耗设计技术**:概述用于构建低功耗自刷新电路的各种方法,如低阈值电压晶体管、动态电源门控、以及...

    c#系统托盘图标刷新类

    5. **清理资源**:在应用程序关闭时,确保释放`NotifyIcon`实例,以避免内存泄漏。 ```csharp trayIcon.Dispose(); ``` `Readme.txt`文件通常包含关于项目的基本信息,如使用方法、注意事项等。在这个案例中,它...

    解决ScrollView中listView下拉上拉刷新问题

    本篇将深入探讨如何解决ScrollView中ListView的下拉上拉刷新问题。 首先,我们需要理解为什么在ScrollView中嵌套ListView会出现问题。ScrollView是一个可以容纳单个垂直滚动视图的容器,而ListView则是一个可滚动的...

    完美解决G4不读内存卡的问题

    当G4无法识别内存卡时,尝试进入恢复模式,读取内存卡或刷机包(不实际进行刷机操作),然后退出并重启,可能是通过刷新设备的内存管理模块或者重置相关配置,使得设备能够正确识别内存卡。如果这种方法无效,可能...

    轻松实现各种自定义动画上啦刷新和下拉刷新

    在移动应用开发中,用户体验是至关重要的,而上拉刷新和下拉刷新功能则是现代App交互设计中的常见元素。上拉刷新通常用于加载更多数据,而下拉刷新则用于更新当前显示的内容。本文将深入探讨如何轻松实现各种自定义...

    实时刷新log工具

    通常,当程序运行出错或者需要调试时,开发者需要频繁地查看日志文件,手动刷新不仅耗时,还可能错过一些瞬息即逝的问题。实时刷新功能解决了这一问题,让开发者能够即时看到程序运行的最新状态。 "mTail"是压缩包...

    DRAM刷新方式

    DRAM刷新是保持内存数据完整性的必要过程,通过理解和应用不同的刷新方式,设计师可以在不牺牲性能的前提下,有效地管理DRAM的刷新需求。无论是分布式刷新还是突发刷新,或是各种具体的刷新周期,都是为了满足特定...

    多种刷新的控件,可刷新的listveiw

    在某些场景下,如嵌套ScrollView或动态加载大图时,提供刷新和加载能力可以避免不必要的内存问题,并确保内容的实时性。 6. **实现机制** - 这些控件的刷新和加载功能通常通过监听滚动事件和触摸手势来触发。...

    内存sod刷机工具

    内存SOD刷机工具,顾名思义,是一种专门用于SPD内存芯片的信息刷新与修改工具。通过这种工具,用户可以在不更换硬件的情况下,对内存条进行故障排查和修复。SPD内存芯片的作用在于存储内存模块的基础信息,包括制造...

Global site tag (gtag.js) - Google Analytics