服务器
文章平均质量分 63
find_
在校大学生计算机嵌入式专业
展开
-
深入分析ConcurrentHashMap
再多线程的情况下,如果使用HashMap,就会导致死循环,导致cpu利用率接近100%,所以如果是并发的情况不要使用HashMap导致死循环主要是这段代码,当在多线程的情况由于没有同步导致,着段代码在扩容的时候会执行 do { Entry<K,V> next = e.next; //假设线程一执行到这里就被调度挂起了,当再次获得执行的时候,数据结构已经改变了,而线程却不知道原创 2016-02-24 13:43:37 · 631 阅读 · 0 评论 -
如何理解java 垃圾收集器
如何理解java 垃圾收集器1)java对象的创建是在java堆(heap)中,如本地变量和成员变量不在此区域。值得注意的是,类变量(static)静态成员的创建是在方法区(method area),方法区和堆区是被各个线程共享。2)垃圾收集是由Java虚拟机提供了一个机制,它通过回收可以回收的对象,来重新分配堆空间3)垃圾收集器让java 编程者脱离内存管理,而不是跟c++一样管理内存是每个使用它原创 2016-02-18 15:17:19 · 626 阅读 · 0 评论 -
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 · 3217 阅读 · 0 评论 -
使用netty建立websocket进行群聊
WebSocket 简介:WebSocket 规范定义了一种 API,可在网络浏览器和服务器之间建立“套接字”连接。简单地说:客户端和服务器之间存在持久的连接,而且双方都可以随时开始发送数据。第一次请求客户端发送的是http请求,请求头中包含websocket相关的信息,服务器端对请求进行验证,所以要添加一些http 的解码编码handler,同时也要添加WebSocket 的handler处理器,原创 2016-02-17 18:16:38 · 2228 阅读 · 0 评论 -
java内存模型
java内存模型首先计算机运行程序需要将内存里面的数据读取到CPU中,CPU对数据进行处理,然后CPU从内存读入到CPU这种代价是很大的,所以CPU根内存又加入了一道高速缓存 假设一个线程(CPU1)为变量 a赋值 a = 3; 那么CPU2,CPU3,在上面条件下能看到3这个值?如果缺少了同步,就会有很多因素导致CPU1,CPU2 可能无法立即甚至永远看不到这个a的值被CPU1更改的结果,因为原创 2016-03-02 14:50:47 · 407 阅读 · 0 评论 -
Netty与Google的protobuf使用
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Event-Loop机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的原创 2016-02-14 21:35:47 · 498 阅读 · 0 评论 -
事件驱动模型的角度来看看 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 · 2627 阅读 · 0 评论 -
Java-AbstractQueuedSynchronizer
Java 中的 ReentrantLock Semaphore ReentrantReadWriteLock等 这些同步的基础都是依靠AbstractQueuedSynchronizer的类来实现。为了方便起见下面使用AQS代替AbstractQueuedSynchronizer。从ReentrantLock看AQS: 对于ReentrantLock 通常使用的如下: reentrantL原创 2016-03-14 14:49:15 · 523 阅读 · 0 评论