java并发学习之二:线程池(四)
一直都知道有两个jvm,一个是server,一个是client,server适合做server,client合适做client,认识也就停留在这里了
最近在练习玩并发的程序,一时手痒,试了一下-server,居然出来的数据如此惊人,相差近100倍
先大概说一下代码的功能,对了,还要说一点,该测试只占用cpu
1.1千万个任务,任务是将不断地加一个随机数,加10000遍,随机数产生的方法是使用了看Concurrency in practice介绍的随机数产生方法(据说能防止jvm优化)
2.写了一个线程池,线程池大家都知道,就不解释了
(具体代码见java并发学习之二:线程池(三))
3.用线程池运行这些任务
下面是运行结果
//-client
//55234043228
//234164019238
//-server
//3076884002
//3077230620
第一个数字是任务下发完成所用时间,第二个数字是任务全部执行完成所用时间
近100倍的差距~真不知道jvm做了什么优化,暂时先记录下来,纳入学习计划把 1 楼 hobitton 2011-12-28 -server其实就是jvm启动的options的一些集合。 2 楼 snake1987 2012-03-05 hobitton 写道-server其实就是jvm启动的options的一些集合。
错了,hotspot vm是区分server版跟client版的,跟option没任何关系
3 楼 hobitton 2012-03-05 额,是我说的不准确哈,server不仅仅是options的集合,但是并不是和option没有关系,因为-server它实际上就默认设置了一些option的值了。
我的异常网推荐解决方案:java并发集合,http://www.myexception.cn/java-other/371723.html