- 博客(18)
- 资源 (6)
- 收藏
- 关注
原创 Java-AbstractQueuedSynchronizer
Java 中的 ReentrantLock Semaphore ReentrantReadWriteLock等 这些同步的基础都是依靠AbstractQueuedSynchronizer的类来实现。为了方便起见下面使用AQS代替AbstractQueuedSynchronizer。从ReentrantLock看AQS: 对于ReentrantLock 通常使用的如下: reentrantL
2016-03-14 14:49:15 531
原创 Netty的FastThreadLocal
Summary: Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network
2016-03-04 14:19:19 3238
原创 java内存模型
java内存模型首先计算机运行程序需要将内存里面的数据读取到CPU中,CPU对数据进行处理,然后CPU从内存读入到CPU这种代价是很大的,所以CPU根内存又加入了一道高速缓存 假设一个线程(CPU1)为变量 a赋值 a = 3; 那么CPU2,CPU3,在上面条件下能看到3这个值?如果缺少了同步,就会有很多因素导致CPU1,CPU2 可能无法立即甚至永远看不到这个a的值被CPU1更改的结果,因为
2016-03-02 14:50:47 415
原创 深入分析ConcurrentHashMap
再多线程的情况下,如果使用HashMap,就会导致死循环,导致cpu利用率接近100%,所以如果是并发的情况不要使用HashMap导致死循环主要是这段代码,当在多线程的情况由于没有同步导致,着段代码在扩容的时候会执行 do { Entry<K,V> next = e.next; //假设线程一执行到这里就被调度挂起了,当再次获得执行的时候,数据结构已经改变了,而线程却不知道
2016-02-24 13:43:37 641
原创 如何理解java 垃圾收集器
如何理解java 垃圾收集器1)java对象的创建是在java堆(heap)中,如本地变量和成员变量不在此区域。值得注意的是,类变量(static)静态成员的创建是在方法区(method area),方法区和堆区是被各个线程共享。2)垃圾收集是由Java虚拟机提供了一个机制,它通过回收可以回收的对象,来重新分配堆空间3)垃圾收集器让java 编程者脱离内存管理,而不是跟c++一样管理内存是每个使用它
2016-02-18 15:17:19 635
原创 使用netty建立websocket进行群聊
WebSocket 简介:WebSocket 规范定义了一种 API,可在网络浏览器和服务器之间建立“套接字”连接。简单地说:客户端和服务器之间存在持久的连接,而且双方都可以随时开始发送数据。第一次请求客户端发送的是http请求,请求头中包含websocket相关的信息,服务器端对请求进行验证,所以要添加一些http 的解码编码handler,同时也要添加WebSocket 的handler处理器,
2016-02-17 18:16:38 2238
原创 Netty与Google的protobuf使用
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Event-Loop机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的
2016-02-14 21:35:47 511
原创 maven的聚合与继承的使用
简介:maven 用于构建我们的项目,帮组我们管理已一些依赖包 1,maven聚合在解释之前,先引入一个模块(module)的概念,我们在做开发的时候很喜欢将单独的功能,做一个独立的,让它与其他各个功能进行解耦。这样 做的目的是希望在开发的过程中不至于重复实现相同的东西,已经进一步降低开发的复制度和后面的可调整性拓展性。maven的聚合,就是将多个module合并在一起为某个module提供服务
2016-02-12 23:07:20 436
原创 事件驱动模型的角度来看看 JAVA NIO
## 事件驱动模型的角度来看看 JAVA NIO ##事件驱动模型的角度来看看 java nio,先作知识的简单铺垫, 1,阻塞非阻塞 阻塞式I/O模型: (1)等待数据准备好; (2)从内核向进程复制数据。 2,非阻塞式I/O: 当所请求的I/O操作非得把本进程投入睡眠才能完成时,不要把进程投入睡眠,而是返回一个错误。进而不断的通过轮询方式来获取正确的结果 3,I/O多路复用:虽然I
2016-02-11 00:51:25 2647
原创 C语言中的数组与指针
在C语言中,有时候在写函数的时候,形式参数,有的是数组形式,有的是指针类型其实编译器把数组的形式参数当作了指针类型指针实参 fun1(int *ptr){ptr[1] = 3 ;
2013-06-13 19:23:01 650
原创 微软一道笔试题目
此题目是冲一篇博客上面看到的http://blog.csdn.net/v_JULY_v/article/details/6057286,最后我下载了他的解答,发现有错误,准备直接看他解答的博客,结果没有发现,所以自己就在他的思想上,进行了,重新编写题目是这样的,一下是我的源代码数据没有完全一样,在创建二叉树的时候,没有优化,懂那个意识就可了我觉得#inclu
2013-04-07 21:48:42 654
原创 仿函数(functor function objects)
传递给算法的"函数参数",并不一定的是函数,可以使行为类似的函数对象.这种对象称为function object(函数物件),或者是functor(仿函数,跟函数有点一样,所以叫做仿函数呵呵)1.什么是仿函数了?你可以说,任何东西行为向函数,他就是函数,也就是一个对象可以向函数那样来使用给出模型class A{return value operator()( arg(参
2013-03-28 23:09:01 810
原创 c++智能指针
auto_prt :它是(它所指向对象的拥有者),所以当自身对象被摧毁时候,该对象也将遭受摧毁,要求一个对象只有一个拥有者,注意:auto_prt 不能使用new 来分配对象给他#include #include using namespace std;template void bad_print(auto_ptr f){cout}
2013-03-23 22:47:20 534
原创 数据结构_符号匹配
#include #include #include #define OK 1;#define ERROR 0#define STACK_SIZE 100 //储存空间的初始长度#define STACK_INC 10 //储存空间的增加长度typedef char Elem;typedef struct {Elem *base;//栈低指
2013-01-14 20:41:15 1119
原创 数据结构_行编辑
#include #include #include #define STACK_SIZE 100 //储存空间的容量#define STACK_INC 10 //增加储存空间的容量#define OK 1#define ERROR 0typedef int Elme;typedef struct {Elme *base;Elme *top
2013-01-14 20:39:30 556
原创 数组的顺序表实现
#include #include #include #define ERROR 0#define Ok 1;typedef char ElemType;#define MAX_ARRAY_DIM 8 //假设数组维数最大为8typedef struct {ElemType *base; //数组元素基地址
2013-01-14 20:38:19 521
原创 C++复制构造函数
今天看了effect C++看到了,不知构造函数,就回忆了一下,然后再网上看了一些资料,就来总结一下class Widget{public:Widget(); //default 构造函数Widget(const Widget & rhs); //copy 构造函数Widget& operator=(const Widget& rhs); //copy a
2013-01-14 19:26:18 446
转载 unix hash
1 概述链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。设 计高效算法往往需要使用Hash链表,常数级的查找速度是任何别的算法无法比拟的,Hash链表的构造和冲突的不同实现方法对效率当然有一定的影响,然而 Hash函数是Hash链表最核心的部分,本文尝试分析一些经典软件中使用到的字符串Hash函数
2013-01-06 23:26:11 583
hadoop-eclipse-插件
2013-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人