- 浏览: 520567 次
- 性别:
- 来自: 杭州
最新评论
-
liuwuhen:
...
Pushlet的工作原理 -
fbwfbi:
fengchuizhuming 写道楼主的完全正确。鉴定完毕楼 ...
硬件同步原语(CAS)理论 -
passerby_whu:
uule 写道这个测试后结果为:“testPageConten ...
FutureTask的使用方法和使用实例 -
fengchuizhuming:
楼主的完全正确。鉴定完毕
硬件同步原语(CAS)理论 -
edwardjuice:
FutureTask的使用方法和使用实例
文章列表
Google File System里面有一小节关于文件追加模式是原子操作,笔者不得其解:
l例如现在有两个独立的进程A和B同时append 数据到一个文件里,添加文件必须收lseek文件的末尾的位置,找准位置后才能添加数据:
首先进程A,seek到位置1500byte的位置是文件的末尾
同时进程B,也seek到1500byte
第三,进程B写入100byte的数据,此时文件末尾变成1600byte
第四,调度到A进程时,write数据,由于第一次Alseek到的位置是1500tye,因此A和B写入数据时,实际上已经产生了互相覆盖的可能
1。O_APPEND的含 ...
对于多线程编程来说,同步问题是我们需要考虑的最多的问题,同步的锁什么时候加,加在哪里都需要考虑,当然在不影响功能的情况下,同步越少越好,锁加的越迟越优是我们都必须认同的。DCL(Double Check Lock)就是为了达到这个目的。
DCL简单来说就是check-lock-check-act,先检查再锁,锁之后再检查一次,最后才执行操作。这样做的目的是尽可能的推迟锁的时间。网上普遍举的一个例子是延迟加载的例子。
Java代码
public
class
LazySingleton {
private
...
目前正在做基于Red 5 的Meeting系统,我们会在Meeting server上生成一个唯一的StreamKey,用于RTMP协议中,NetStream.publish的StreamID,但是有一个问题,我们调用allocateStream的时候,如果一个会议中的多个成员并发请求这个服务时(Meeting server上生成一个唯一的StreamKey),会造成同一个meeting,使用不同的StreamID。
在单虚拟机的情况下,可以使用Synchronized原生锁来对同一个RoomKey进行加锁,如果reques的是同一个RoomKey,则需要排队处理,直到拿到这个Strea ...
最近有个项目要求服务器上生成唯一的ID号,首先就想到了UUID,它能够保证唯一性。
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUI ...
有新的项目,关于RTMP的,挺新鲜的东西,这篇文章比较全面介绍了RTMP协议的内容,作为参考资料记录之。
RTMP 协议研究
1 协议研究概述
协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在 ...
把这个帖子作为日记,记下来,如果title带有为什么,Javaeye会自动把它移到问答频道,重新输入一下,看看高手们的反应:
最近为了查一个问题,分别使用HttpClient3和HttpClient4发一个同样post请求到同一个server上,发现
HttpClient3比HttpClient4性能要好很多,测试结果是H3,平均时间是800ms,而httpClient4要3秒钟,代码如下:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader; ...
DBCP主要用于数据库连接池中,DBCP本身并没有池的功能,它使用Common Pool对象池,实现了数据库连接池的功能,Common Pool中有很多参数,一直想做个小小的总结,因为很容易忘记,另外很多文章的参数总结都不是很全
1.maxActive:
最大的活跃连接的数量,默认值为8
注:
活跃连接指的是正在用于程序和数据库之间进行交互的连接
闲置连接指的是,在连接池中,没有被应用程序使用的连接
2.maxIdle:
最大的闲置连接的数量,默认值为8
注:
当大于最大的闲置数量时,会被连接池主动销毁
3.minIdle:
连接池中最小的闲置连 ...
传统的生产消费模型,实际上是通过一个条件来调节生产者和消费者线程的唤醒或者等待,这样做的坏处是,不该被唤醒的线程也会被唤醒,这样对多线程编程来说,会引起线程无谓切换,在Java5中的并发编程包中,有重入锁实现了多条件的锁来实现生产者线程只会唤醒消费者线程,而不会唤醒其它的生产者线程,这样就适当地减少了线程的切换开销。
源代码如下:
1.仓库
package readwritelock;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock ...
1.远程拷贝命令
1) 从本地文件系统拷贝到远程
scp 文件名 --用户名@计算机IP或者计算机名称:远程路径
例如:
scp 1.txt root@172.168.0.125:/usr/local/
2)从远程将文件拷回本地
scp --用户名@计算机IP或者计算机名称:文件名 ...
1.Tomcat6&Comet的简要介绍
Comet技术的悄然流行,Jetty在比较早地支持了Comet,提供了Comet 的Servlet,同样从Tomcat6开始,Comet已经在Tomcat的标准Servlet中开始支持了,这是个好事情,毕竟我们有越来越多的选择了。
可喜的是Co ...
1.负载均衡背景
Internet的规模每一百天就会增长一倍,客户希望获得7天24小时的不间断可用性及较快的系统反应时间,而不愿屡次看到某个站点“Server
Too Busy”及频繁的系统故障。
网络的各个核心部分随着业务量的 ...
1.需求的提出
我们现在有个系统,由于采用的是HTTP进行文件的播放(直接播放存放在Apache server上的文件),如果采用Apache或者其它web server,会存在单点问题,一台apache的长连接的数量毕竟有限,如何让多个apache同时工作提供服 ...
MemCached使用了有优化的内存管理方式,使得对象的内存分配效率有很大程度上的提高。
1.传统的内存管理方式的缺点
传统的内存分配使用mallocate方法向OS申请内存,内存不再使用时,使用free方法,释放内存给OS。这种方式简单,但是有以下缺点:
1.频繁的跟OS打交道,增加了OS的工作
2.容易产生内存碎片。
当内存不再使用free内存给操作系统,当分配的对象很多时候如1byte,或者几个byte大小的内存块,这些内存块在多数情况下,是不能被使用的,因为大部分对象是大于这个碎片内存大小的,这些不规整的内存块,导致内存分配效率变差,当有新的内存需要分配时,OS必 ...
在MemCached的基础里面,我们讲到MemCached是一个重要特征是它是利用客户端的计算来达到分布式效果的。
1.Cache的分类
根据缓存与应用的耦合程度将其划分为local cache和remote cache(来自于ahuaxuan的分类方式)。
local cache表示 ...
MemCached是采用libevent来进行网络连接的并发处理,能够保持高并发情况下,依然能够保持快速的响应能力。
因此安装要分两部分:
1.安装libevent
Step 1:
下载http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
Step 2:[root@ls-dev01 local]#
tar -zxvf libevent-1.4.13-stable.tar.gz
Step 3:[root@ls-dev01 local]#
cd libevent-1.4.13-stable
St ...