- 浏览: 17142 次
- 性别:
- 来自: 杭州
最新评论
文章列表
修改 IntellJ/bin/idea.exe.vmoptions (记得备份哦亲)修改成
-Xms512m
-Xmx512m
-Xmn164m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-Xverify:none
-Xnoclassgc
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=85
-ea
-Dsun.awt.keepWorkingSetOnMinimize=true
-D ...
- 2013-03-12 20:58
- 浏览 848
- 评论(0)
JDK5之前多线程的锁都是使用synchronized ,JDK 5中的锁是接口java.util.concurrent.locks.Lock。另外java.util.concurrent.locks.ReadWriteLock提供了一对可供读写并发的锁。ReentrantLock是java.util.concurrent.locks中的一个可重入锁类。在高竞争条件下有更好的性能,且可以中断。深入剖析ReentrantLock的源码有助于我们了解线程调度,锁实现,中断,信号触发等底层机制,实现更好的并发程序。
先来看ReentrantLock最常用的代码lock
public void ...
- 2011-12-17 00:48
- 浏览 598
- 评论(0)
一,相关文件下载
1.java,eclipse 这些必备的就不说了。
2.从 http://tomcat.apache.org/download-60.cgi下载Source Code Distributions。因为是在windows环境,所以下的是zip包。
二,解压src包,可以看到已经存在eclipse.classpath,eclipse.project 这两个文件,经常用eclipse的人应该就知道这个目录已经是eclipse的工程目录了,只要使用eclipse 的import就可以导入工程,不过郁闷的是import时提示这不是eclipse的工程,对比机子上其他eclips ...
- 2011-04-12 17:06
- 浏览 545
- 评论(0)
本文根据http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html来翻译,纯粹为了自己学习做记录,有生硬不通的地方还请海涵,也欢迎各位朋友指正。
在多线程环境下实现延迟加载时 Double-Checked Locking是通常使用的而且效率比较高的方法。不幸的是,如果没有其他同步机制的话,他也许不能在java平台可靠的运行。当使用其他语言实现时,比如c++,这取决于处理器的内存模型,编译器引起的reordering 和编译器与synchronization 库之间的相互作用。因为这些不是针对特定的语言,比如c ...
- 2011-04-07 21:57
- 浏览 835
- 评论(0)
今天在看《分布式java应用》这本书的时候看到作者提到HashMap在多线程并发的环境下有可能出现死循环,导致cpu100%的现象,看了下源码结合网上的分析说明下这种可能性。可能出现问题的地方是在扩容的时候
void resize(int newCapacity) {
Entry[] oldTable = table;
int oldCapacity = oldTable.length;
if (oldCapacity == MAXIMUM_CAPACITY) {
threshold = Integer.MAX_VAL ...
- 2011-04-05 23:47
- 浏览 706
- 评论(0)
本文参考:http://www.javaeye.com/topic/344876及后续评论。
接上文,CurrentHashMap的containsValue 方法在第一层for循环的时候读取了count,但是并没用到这个变量, int c = segments[i].count;这是因为segment[i].count是对volatile变量的访问,接下来segm ...
- 2011-03-19 14:42
- 浏览 579
- 评论(0)
很早就想研究ConcurrentHashMap ,不过一直拖拉,我也是个很容易被新奇好玩的技术吸引的人,这个呢有好也有坏。废话不多说上干货。
ConcurrentHashMap 最重要的就是引入了Segment 的概念,他在自己内部定义了这个Class来管理数据, ...
- 2011-03-17 22:26
- 浏览 628
- 评论(0)
逃逸分析英文作Escape Analysis。在计算机语言编译器优化原理中,逃逸分析是指分析指针动态范围的方法,它同编译器优化原理的指针分析和外形分析相关联。
当变量(或者对象)在方法中分配后,其指针有可能被返回或者 ...
- 2011-03-17 11:00
- 浏览 827
- 评论(0)
memcache是一个分布式的缓存系统,但是本身没有提供集群功能,在大型应用的情况下容易成为瓶颈。但是客户端这个时候可以自由扩展,分两阶段实现。第一阶段:key要先根据一定的算法映射到一台memcache服务器。第二阶段从服务器中取出缓存的值。但是有一个问题,比如其中一台服务器挂了,或者需要增加一台服务的时候,这个时候第一阶段的算法就很重要了,怎样使得原来的数据尽可能的继续有效,减少扩展节点或缩减节点带来的冲击。下面列出想到一些解决方法:
一:hash一致性算法:
优点:
当一个节点失效的时候,其他节点的数据不会受到破坏,这个节点的数据会被分流到另外一个节点。当增加一个节点时,只会 ...
- 2011-03-15 10:42
- 浏览 709
- 评论(0)
---使用oracle用户,进入sqlplus 删除用户再创建一个用户并赋权
--权限中要有synonym 否则imp dmp文件的时候,会出错
su - oracle
sqlplus / as sysdba
drop user base cascade;create user base identified by zdsoft default tablespace tbs_base;grant connect,resource,create table,create view,execute any procedure,create any synonym to base;
-- ...
- 2010-12-03 11:15
- 浏览 593
- 评论(0)
---使用oracle用户,进入sqlplus 删除用户再创建一个用户并赋权
--权限中要有synonym 否则imp dmp文件的时候,会出错
su - oracle
sqlplus / as sysdba
drop user base cascade;create user base identified by zdsoft default tablespace tbs_base;grant connect,resource,create table,create view,execute any procedure,create any synonym to base;
-- ...
- 2010-12-03 11:15
- 浏览 388
- 评论(0)
最近在研究异步的消息机制,使用的是rabbit mq这个消息框架,使用Erlang开发,提供了java的jar包。
AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实 ...
- 2010-11-16 22:05
- 浏览 762
- 评论(0)
最近在研究异步的消息机制,使用的是rabbit mq这个消息框架,使用Erlang开发,提供了java的jar包。
AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实 ...
- 2010-11-16 22:05
- 浏览 562
- 评论(0)
网上找了很多方法,发现很多方法都有问题,下面第一种配置也可以上网,但是主机ping不通虚拟机,虚拟机可以ping通主机,而且会占用192.168.0.1的ip,如果公司中刚好这个ip是邮件服务器或者其他服务器就有问题了。第二种方法较好,简单而且可以双向ping通
第一种方法:
1.首先看下VM的NAT有没开启,在“编辑”菜单中的“编辑虚拟网络”,选中NAT 选项页,设置主机网卡“VMnet8”然后启用。
2.设置VMware 网络连接方式为NAT
3.在网络连接中将VMnet8配置为:192.168.0.1。子网255.255.255.0
4.将本地连接设置为共享上网,这个时候会遇 ...
- 2010-07-23 20:46
- 浏览 707
- 评论(0)
一直很鄙视叫嚣“软件蓝领”和“程序员吃的是青春饭”的一些人,这些人肯定没经历过维护糟糕代码的经历。很多人鼓吹重要的是设计啦,架构啦,于是乎出了好多的架构师,软件设计师,居然还有软件设计师认证考试。于是 ...
- 2010-05-28 21:26
- 浏览 624
- 评论(0)