`
lionzm
  • 浏览: 12473 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
背景:正在使用的redis 多M-S结构(一下称为redis集群) 内存不够使用了,如何多加一套或者多个M-S到集群中。 redis的作者给出了的解决方案类似如下:如原先你部署2套M-S的结构,那么你需要重新配置3套M-S的结构,然后将数据完整的迁移过来。缺点:如果你原先布置的集群只有2个M-S可能还行,如果是10个呢?那么你又要重新部署11个节点,可能这个时候的机器内存已经不足了。 解决办法:多M-S结构中,几个MS构成一套集群是由程序控制的。那么增加一个节点之后,新访问集群代理设置11个节点,保留老的代理(10个节点)。将老代理中的数据全部读出,判断是否在新代理中存在,如果不存在则将数据 ...
在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046。import java.lang.instrument.Instrumentation; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayDeque; import java.util.Deque; import java.util.HashSet; ...
背景:在开发的过程中已经需要提供多个接口给外围系统。服务端在实现想使用统一的方法处理多个接口,例如判断传入的参数是否合理。 1.定义两个接口 package org.common.single.inf; import org.common.single.condition.Condition1; public interface IQueryService extends IQueryBaseService{ public void myService(Condition1 condition); } package org.common.single. ...
背景:开发中时长会出现无法连接数据库的错误,怀疑应该是不是打开的连接数过多而导致。本例中通过jmap打印虚拟机堆栈信息中的连接数来确定进程所占用的数据库(oracle)连接数。 1.查看当前数据库的连接数   select count(*) from v$session; 2.启动30个线程同时查询数据库(连接池中最大允许50个连接),但所有线程再并未关闭连接 for (int i=0;i<30;i++){ Runnable r = new Runnable(){ @Override public void run() { Con ...
synchronized 具备有互斥性和可见性,volatile只具备有可见性 打个比方对一个 对一个变量a 进行a++操作 synchronized可以保证只有一个线程对a进行操作,计算完之后写回主内存,另一个线程需要从主内存read 出来在load到线程内存中。因此可以保证多线程下其计算的正确性 volatile只能保证一个线程在使用a之前去主内存中read出来,但线程之间没有互斥关系,同时会有多个线程进行++操作,导致写回主内存的值会变小
find / -name "*pp" -o -name "*po"
背景:单线程起动一个loader,loader中分多线程计算 1.单线程起loader,省略 2.多线程loader代码,AbstractDataCounterLoader 启动的线程,run 方法中抽象出calc 让子类实现 public class MutiThreadLoader extends AbstractDataCounterLoader { private static final Logger logger = LoggerFactory.getLogger(MutiThreadLoader.class); /** * 线程数 */ private ...
32位操作系统中 一个对象的对象头占用8字节,对象中的一个引用占4个字节,需要补齐位8的倍数 一维数组的为特殊对象,对象头占8个字节,加上4字节的长度数量,加上数组长度N*数组类型 String类型占用的字节数位40+2N+pandding(补齐为8的个数) 64位操作系统中 一个对象的对象头占用16字节,对象中的一个引用占8个字节,需要补齐位8的倍数 一维数组的为特殊对象,对象头占16个字节,加上8字节的长度数量,加上数组长度N*数组类型 String类型占用的字节数位64+2N+pandding(补齐为8的个数)

开发小分享

1.两个几乎相同的实体,只是有部分字段不同,此时需要从一个实体拷贝相同的数据到另一个实体,调用set方法去执行。 如果实体的成员变量很多 二三十个,那我们的代码就写二三十行。代码就会显得十分臃肿。 解决办法: 1. ...
Global site tag (gtag.js) - Google Analytics