会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
先让我睡饱
Don’t hurry say have no choice, perhaps, next intersection will meet hope.
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
9
下一页
2020年2月16日
Netty之服务端客户端demo搭建
摘要: 1、serverhandler package server; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import lombok.exte
阅读全文
posted @ 2020-02-16 17:29 以梦为码
阅读(1231)
评论(0)
推荐(0)
2020年2月15日
粘包和半包
摘要: 在网络传输过程中粘包和半包中经常出现的现象。 在TCP传输中,客户端发送消息时,实际上是将数据写入TCP的缓存,此时数据的大小和缓存的大小就会造成粘包和半包的原因。 例如: 客户端给服务端发送了两条消息ABC和DEF,服务端这边的接收会有多少种情况呢?有可能是一次性收到了所有的消息ABCDEF,有可
阅读全文
posted @ 2020-02-15 19:47 以梦为码
阅读(908)
评论(0)
推荐(0)
2020年2月13日
高并发下的内存管理技巧
摘要: 1、为何高并发下容易oom 1)首先我们了解当执行垃圾回收的时候,会导致进程暂停,从而使我们的程序卡死;进程长时间暂停,又会导致大量的请求积压等待处理,垃圾回收刚刚结束,更多的请求立刻涌进来,迅速占满内存,再次被迫执行垃圾回收,进入了一个恶性循环。如果垃圾回收的速度跟不上创建对象的速度,还可能会产生
阅读全文
posted @ 2020-02-13 22:14 以梦为码
阅读(606)
评论(0)
推荐(0)
2020年2月12日
基于Netty实现高性能通信程序之传输协议编码与解码
摘要: 1、协议抽象实体 1 package protocal.model; 2 3 import lombok.Data; 4 5 /** 6 * @author liupengr 7 * @date 2020/2/12 18:21 8 */ 9 @Data 10 public abstract clas
阅读全文
posted @ 2020-02-12 19:22 以梦为码
阅读(471)
评论(0)
推荐(0)
基于Netty实现高性能通信程序之序列化与反序列化
摘要: 1、序列化接口 1 package serializer.service; 2 3 /** 4 * 序列化接口 5 * 6 * @author liupengr 7 * @date 2020/2/12 18:17 8 */ 9 public interface Serializer { 10 11
阅读全文
posted @ 2020-02-12 19:18 以梦为码
阅读(526)
评论(0)
推荐(0)
2020年2月11日
高性能序列化与反序列化
摘要: 目前有很多通用的序列化实现,比如java和go都内置了序列化实现,还有一些开源的序列化框架,比如Google 的 Protobuf、Kryo、Hessian 等, 以及像json,二进制这种标准会的数据格式也可以作为序列化的实现。 首先我们选用数列化实现有哪几个维度呢? 序列化后数据要有良好的可读性
阅读全文
posted @ 2020-02-11 22:02 以梦为码
阅读(813)
评论(0)
推荐(0)
2020年2月10日
网络IO模型
摘要: 1、同步网络IO模型 网络IO模型分两段,一个write,一个read,write操作我们不需要考虑,这里我们看read操作。 接受线程会一直阻塞,当有数据到来的时候,操作系统会先把数据写入接收缓存,然后给接收数据的线程发一个通知, 线程收到通知后结束等待,开始读取数据。处理完这一批数据后,继续阻塞
阅读全文
posted @ 2020-02-10 19:25 以梦为码
阅读(187)
评论(0)
推荐(0)
IO模式
摘要: 1、用户空间和内存空间 为了不让用户线程直接操作内核,保护内核的安全,操作系统将虚拟空间分为两部分,一部分为内核空间,一部分为用户空间。 针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x
阅读全文
posted @ 2020-02-10 18:52 以梦为码
阅读(542)
评论(0)
推荐(0)
2020年2月9日
java异步编程
摘要: Q:为何要采用异步编程 A:异步编程首先不会节约线程,因为异步操作都会重新开一个线程。异步编程是提高了CPU的使用率,采用同步编程的方式,整个服务器的所有线程大部分都没有在工作,而是在等待。因为线程同步操作 要等整个事件处理完成才能提交,所以CPU的利用率很低;当采用异步编程,线程不需要等待,减少时
阅读全文
posted @ 2020-02-09 17:51 以梦为码
阅读(961)
评论(0)
推荐(0)
java线程池及创建多少线程合适
摘要: java线程池 1、以下是ThreadPoolExecutor参数完备构造方法: public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit, BlockingQueu
阅读全文
posted @ 2020-02-09 12:46 以梦为码
阅读(10127)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
9
下一页
公告