原文地址:http://www.infoq.com/cn/articles/java-memory-model-1并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线...
分类:
编程语言 时间:
2015-04-12 00:01:00
阅读次数:
360
1. 可见性如果一个线程对共享变量值的修改,能够及时的被其他线程看到,叫做共享变量的可见性。如果一个变量同时在多个线程的工作内存中存在副本,那么这个变量就叫共享变量2. JMM(java内存模型)多个线程同时对主内存的一个共享变量进行读取和修改时,首先会读取这个变量到自己的工作线程成为一个副本中,改...
分类:
编程语言 时间:
2015-04-11 23:49:29
阅读次数:
243
点击打开杭电2549
Problem Description
Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.
Marge: Yeah, what is it?
Homer: Take me for example. I want to find...
分类:
编程语言 时间:
2015-04-11 17:58:38
阅读次数:
179
Java虚拟机规范中试图定义一种java内存模型(java Memory Model,jmm)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到一致的内存访问效果。Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量...
分类:
编程语言 时间:
2015-04-11 17:38:52
阅读次数:
151
jinfo:可以输出并修改运行时的java 进程的opts。? jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。? jstat:一个极强的监视VM内存工具。可以用来监视VM内...
分类:
编程语言 时间:
2015-04-11 13:26:59
阅读次数:
178
tomcat优化配置,说明一、并发优化1.JVM调优以下为1G物理内存tomcat配置:JAVA_OPTS="-server-Xms512M-Xmx512M-Xss256K"-server:一定要作为第一个参数,在多个CPU时性能佳-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些-Xmx:javaheap最大值,使用的最大内存Xm..
分类:
编程语言 时间:
2015-04-10 20:21:44
阅读次数:
177
一、Java内存回收机制不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的(还有克隆),这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释...
分类:
编程语言 时间:
2015-04-08 23:07:22
阅读次数:
165
内存管理一直是Java 所鼓吹的强大优点。开发者只需要简单地创建对象,而Java的垃圾收集器将会自动管理内存空间的分配和释放.但在很多情况下,事情并不那么简单,在 Java程序中总是会频繁地发生内存泄露(Memory Leaks).内存泄露是什么? 内存泄露的定义: 当某些对象不再被应用程序所使用....
分类:
编程语言 时间:
2015-04-08 22:44:00
阅读次数:
196
一、引题在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题。下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文。1、java内存..
分类:
编程语言 时间:
2015-04-07 19:58:28
阅读次数:
233
可见性:一个线程对共享变量值的修改,能够及时的被其它线程看到。
共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。
所有的变量都存储在主内存中
JAVA内存模型(JVM)
所有的变量都存储在主内存中每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的副本(主内存中该变量的一份拷贝)
两条规定...
分类:
编程语言 时间:
2015-04-06 15:46:53
阅读次数:
271