11 2014 档案
摘要:ZooKeeper 秘诀 与解决方案A Guide to Creating Higher-level Constructs with ZooKeeperOut of the Box Applications: Name Service, Configuration, Group Membership...
阅读全文
摘要:1.>>> def deco(func):... print "In deco"... return func...>>> @deco... def foo():... print "In foo"...In deco #因为deco()返回的...
阅读全文
摘要:一。深入研究>>> def get_0_1_2():... yield 0... yield 1... yield 2...>>> get_0_1_2 #函数类型>>> generator = get_0_1_2()>>> generator #生成器>>> generat...
阅读全文
摘要:一、对象头包括两部分信息:Mark Word(标记字段)和 Klass Pointer(类型指针) 1. Mark Word 用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等等。 JVM 对象头一般占用两个机器码,在 3
阅读全文
摘要:传统的进程间通信的方式有大致如下几种:(1) 管道(PIPE)(2) 命名管道(FIFO)(3) 信号量(Semphore)(4) 消息队列(MessageQueue)(5) 共享内存(SharedMemory)(6) Socket Java如何支持进程间通信。我们把Java进程理解为JVM进程。...
阅读全文
摘要:一、通信协议TCP/UDP: TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。 客户端和服务器端都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小
阅读全文
摘要:一。回调的形式1. C、C++和Pascal允许将函数指针作为参数传递给其它函数。JavaScript,Python,和PHP允许简单的将函数名作为参数传递。2. .NET Framework的语言中,提供了一种型别安全的引用封装,所谓的'委托',用来定义包含类型的函数指针,可以用于实现回调。3. ...
阅读全文
摘要:选项 public final static int TCP_NODELAY = 0x0001; public final static int SO_REUSEADDR = 0x04; public final static int SO_LINGER = 0x0080; ...
阅读全文
摘要:Netty的“零拷贝”主要体现在如下三个方面:1) Netty的接收和发送ByteBuffer采用DIRECT BUFFERS,使用堆外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存(HEAP BUFFERS)进行Socket读写,JVM会将堆内存Buffer拷贝...
阅读全文
摘要:JVM的配置,最常用的两个配置就是:-Xms512m –Xmx1024m -Xms设置JVM的初始化内存大小,-Xmx为最大内存大小,当突破这个值,将会报内存溢出,导致的原因有很多,主要是虚拟机的回收问题以及程序设计上的内 存泄露问题;由于在超过-Xms时会产生页面申请的开销,所以一般很多应用服务器
阅读全文
摘要:1、 先来说GC工作在哪块区域呢? 程序计数器,虚拟机栈(也就平时所说的栈), 本地方法栈这三区域随着线程而生,随着线程而灭,出栈入栈的操作,在栈中分配配的多少内存都具有确定性,在这几个区域就不用考虑回收问题了,因为方法结束或线程结束,内存自然就回收了。 而堆区和方法区都是线程共享,堆区主要存放...
阅读全文