`
pumbaa.he
  • 浏览: 71394 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论
文章列表
AtomicInteger,可以用做线程安全的ID自增对象,具体的资料网上搜索一下很多,这边就不列举了,下面是一个例子   public static ConcurrentHashMap<String, AtomicInteger> ID = new ConcurrentHashMap<String, AtomicInteger>();   ID.put("Character", new AtomicInteger(1000001)); ID.put("Monster", new AtomicInteger(1000010 ...
如题,在java中如何删除list项 有两种方法: 一、采用Iterator方式删除 List<Integer> List = new ArrayList<Integer>(); Iterator<Integer> iter = List.iterator(); while (iter.hasNext()) { iter.remove(); }   二、创建一个删除的list,然后使用removeAll方法删除 List<Integer> allList = new ArrayList<Integer>() ...
当你需要把一个List对象传到其他方法进行操作时,需要传一个已经实例化好的对象过去,然后在调用的方法里面通过list.add方法来修改这个List对象。 如果你传了一个List对象过去,然后在调用的方法里面进行实例化的话,那么是取不到该对象的 例如以下代码: List<Integer> list = new ArrayList<Integer>(); setList(list); for (Integer i : list){ System.out.println(i); }   public static void setList( ...
在memcached中,如果要缓存自定义对象,那么自定义对象必须得序列化,如一下代码所示 import java.io.Serializable; public class MemUser implements Serializable { private static final long serialVersionUID = 1703369482383959962L; private int id; private String name; public int getId() { return id; } public void setId(in ...
如上图所示,一台物理服务器放三个游戏服务和一个数据库,并且有专门的memcached服务器 1、当memcached服务器重启时,需要从基础数据库中读取基础数据,而用户信息是等玩家登陆之后才写入 2、当游戏服务器重启时,首先需要从memcached服务器读取基础数据,如果memcached服务器不能访问,则从基础数据库中读取基础数据;接着要清空memcached服务器中对应的游戏服务器的用户信息,目的是为了让memcached服务器的数据和游戏服务器的数据同步   延伸:以上的游戏服务器和MEM服务器都可以做成环式的,所有环式就是负载均衡,当其中一台游戏服务器挂掉之后,客户端可以连接 ...
首先非常感谢Saint,跟他交谈收益颇多   有关服务器的数据架构,可以分为服务器本地内存+Memcached+DB这三块 1、和客户端交互数据的就是服务端的本地内存了,这个速度是最快的,所以交互也是最频繁的(本地内存数据只保存自身服务器的数据) 2、Memcached作为本地内存的备份数据,同时还提供了分布式服务器的数据共享(Memcached保存着所有服务器的数据) 3、DB作为Memcached的备份数据,当从Memcached取不到数据时可以从DB中获取   用户登录的时候先尝试从Memcached中获取 如果获取到就从Memcached中放入本地内存,如果获取不到就从DB ...
1、往ConcurrentHashMap中连续写100W条数据花了2000毫秒,从这100W条数据中查询花了1毫秒 2、往ConcurrentHashMap中连续写500W条数据花了18420毫秒,从这500W条数据中查询花了1毫秒 3、往ConcurrentHashMap中连续写1000W条数据服务器超时   以上结果表示ConcurrentHashMap在于写的瓶颈,读没有压力   System.out.println("before:"+System.currentTimeMillis()); for (int i = 1;i<50000 ...
  mysql中设置my.ini配置文件中的max_connections可以修改最大连接数,默认为 max_connections=100 这个连接数指的是数据库的并发连接数,当数据库的并发超过这个数量时,就会抛出异常:too many connections 这时候可以修改这个数量提高数据库的并发量 但是,这个值也不是可以无限制的增大,我经过测试,在windows2003 32位操作系统下,当并发的连接数超过五六百的时候,就会抛出异常:Can't create a new thread (errno 12); if you are not out of available memo ...
1、socket连接分为tcp和udp两种模式,其中tcp会自动分发并且发送的流是顺序发送的,udp完整发送(主要用的是tcp模式,这边就不讨论upd模式的了)   2、tcp模式下连续发送数据时,会把一个大数据自动分为几个数据块多次发送,也有可能把多个小数据合并在一块后一次发送,所以传输的数据格式需要封装,加上一个数据长度或者结束标志以便区分,以下是在as3客户端接收socket数据时的片段代码     var flag:String = "[/e]";//结束标志 var aryData:Array = new Array();//这次接收到的数 ...
Global site tag (gtag.js) - Google Analytics