jvm性能调优的目地:1)控制jvm的堆栈大小。比如当你的程序年轻代对象在某个时间段产生的比较多的时候,就需要控制年轻代的堆大小。同时还要控制总的JVM大小避免内存溢出2)控制GC的行为。GC是一个后台处理,但是它也是会消耗系统性能的,因此要根据运行程序的特点来更改GC行为。3)控制jvm线程的内存分配。如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的。堆大小设置-Xms 初始堆...
分类:
其他好文 时间:
2014-05-25 18:22:43
阅读次数:
272
(1)String构建的对象不能改变,每次对String进行操作时,如两个String相加,需要新建一个String对象,然后容纳最终的结果。
而StringBuilder与StringBuffer构建的对象可以随时在修改其内容,而无需生成新的对象。一般新建一个对象是会生成16个字节的空间,之后根据需要再增加空间。
由于一般新构建一个对象涉及分配内存空间分配、无引用对象过多时的垃圾回收等,因此,对于操作频繁的字符串需使用StringBuilder或StringBuffer...
分类:
其他好文 时间:
2014-05-25 18:17:57
阅读次数:
225
继续并发专题~
这次介绍CyclicBarrier:看一眼API的注释:
/**
* A synchronization aid that allows a set of threads to all wait for
* each other to reach a common barrier point. CyclicBarriers are
* useful in program...
分类:
编程语言 时间:
2014-05-25 18:15:06
阅读次数:
316
信号机制
管道
有名管道
文件锁
消息队列
信号量
共享内存...
分类:
编程语言 时间:
2014-05-25 16:47:07
阅读次数:
307
package wzh.test;import java.util.ArrayList;import
java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import
java.util.concurre...
分类:
编程语言 时间:
2014-05-25 15:15:43
阅读次数:
300
将线程设置成后台线程Daemons 主线程结果后,后台线程将自动结果。package
wzh.test;import java.util.concurrent.TimeUnit; class SimpleDaemons implements
Runnable{ @Override pub...
分类:
编程语言 时间:
2014-05-25 13:44:02
阅读次数:
276
原文:http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:
分类:
编程语言 时间:
2014-05-25 11:29:15
阅读次数:
383
Linux C/C++多线程编程中请善用__thread...
分类:
编程语言 时间:
2014-05-25 10:13:55
阅读次数:
201
继续并发专题~
FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞。
由于:FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞这两个特性,我们可以用来预先加载一些可能用到资源,然后要用的时候,调用get方法获取(如果资源加载完,直接返回;...
分类:
编程语言 时间:
2014-05-25 07:26:53
阅读次数:
570
上述代码中,如果直接用于多线程中是存在问题的,比如线程A调用MyThreadScopeData.getInstance()获取MyThreadScopeData对象,执行到 instance = new MyThreadScopeData();还没返回的时候恰好这时候线程B也来调用MyThreadScopeData.getInstance(),执行了 instance = new MyThreadScopeData();这时候则线程B创建的对象会覆盖线程A创建的对象。所以在线程A中的MyThreadScop...
分类:
编程语言 时间:
2014-05-25 04:47:12
阅读次数:
285