04 2012 档案

Instagram 的ID生成策略[翻译]
摘要:项目中遇到一个ID生成策略的需求:需要在系统中为每个用户分配一个ID用作以后的用户标示。这个需求应该是非常普遍的,对于使用人数较少的系统而言不会是一个问题,不过对于向用户众多的互联网系统来讲这不是一个简单的问题。下面是翻译的最近最火爆的Instagram应用开发者的一篇文章,看看他们一个十几个人的公司是怎么解决这个问题的:先给出原文链接:http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram以下为简单翻译(不清楚的地方请参照原文): Instagram 的分片和IDs 每秒接收2... 阅读全文

posted @ 2012-04-16 21:36 心笑峰 阅读(11505) 评论(2) 推荐(1) 编辑

JAVA 笔记 MD5加密
摘要:简单的MD5加密代码: packagecom.test.md5;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;publicclassMD5Parase {publicstaticStringautType="MD5";publicstaticStringhash(Stringdata){try{returnhash(data.getBytes("UTF-8"));}catch(Exceptionex){returnnull;}}publicst 阅读全文

posted @ 2012-04-16 12:40 心笑峰 阅读(346) 评论(0) 推荐(0) 编辑

JAVA 笔记 CopyOnWriteArrayList
摘要:在写代码时遇到了一个ConcurrentModificationException异常,百度了下发现是因为在使用Iterator遍历时原数据发生了变化导致的。业务的需求如下: 有一个数据监听器列表,当系统收到数据时遍历列表中的每一项并发送数据。当遍历的过程中有可以会新增或删除相应的监听器。 这种情况下可以使用CopyOnWriteArrayList 来实现监听器列表。 原理如下: JAVA中将引用从一个对象移到另外一个对象不需要消耗CPU时间,可以看做是一个原子操作。 JAVA中如果一个对象仍旧存在引用,则不会被CG回收。 CopyOnWriteArrayList就是根... 阅读全文

posted @ 2012-04-13 16:42 心笑峰 阅读(1713) 评论(1) 推荐(0) 编辑

JAVA 笔记 ReadWriteLock
摘要:ReadWriteLock适用于: 同一个对象,允许多个线程同时读,只允许一个线程写,且读写不能同时进行。 用法:ReadWriteLocklock=newReentrantReadWriteLock();lock.readLock().lock();try{//读取数据}finally{lock.readLock().unlock();}lock.writeLock().lock();try{//写数据}finally{lock.writeLock().unlock();} 阅读全文

posted @ 2012-04-13 12:28 心笑峰 阅读(388) 评论(0) 推荐(0) 编辑

Erlang 聊天室程序(十一) 主题房间之Supervisor引起的改造
摘要:于由使用了Supervisor来管理当前所有的房间,每个房间都为单独的进程,所以要计对之前的chat_room.erl代码做相应的修改。 具体包括以下几点: 1.getPid/0 : 以前是由{local,?Module}房间进程来产生新的客户端进程。这次由于采用simple_one_to_one的启动方式,所以要重新指定客户端进程的产生方式(这里交由大厅来创建) 所以修改chat_room进程的创建方法,房间名由外部传入,再根据房间名为每个chat_room进程命名。start_link(Para)->#roominfo{name=Name,type=Type}=Para,... 阅读全文

posted @ 2012-04-05 16:43 心笑峰 阅读(1062) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示