自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 高性能Netty学习_01.Java BIO详解

java BIO编程详解 一、I/O基本模型 Java BIO 同步并阻塞(传统阻塞型), 服务器实现模式为一个连接一个线程, 即客户端有连接请求时服务器端就需要启动一个线程进行处理, 如果这个连接不做任何事情会造成不必要的线程开销 . Java NIO : 同步非阻塞, 服务器实现模式为一个线程处理多个请求(连接), 即客户端发送的连接请求都会注册到多路复用器上, 多路复用器轮询到连接有 I/O 请求就进行处理 Java AIO(NIO.2) : 异步非阻塞, AIO 引入异步通道的概念,

2020-09-20 15:34:34 160

原创 树与图的深度优先遍历和广度优先遍历

1. 树与图的存储 (1).邻接矩阵 解释: 在二维数组中,0表示没有连线,1表示有连线. 通过二维数组,我们可以很快的找到一个顶点和哪些顶点有连线(比如A顶点,只需要遍历第一行即可) 另外,A-A,B-B(也就是顶点到自己的连线),通常使用0表示. 邻接矩阵的问题: 邻接矩阵还有一个比较严重的问题,就是如果图是一个稀疏图 那么矩阵中将存在大量的0,这意味着我们浪费了计算机存储空间来表示根本不存在的边。 (2)邻接表 加入有向边,权值为w // 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k

2020-09-07 13:03:58 356

原创 Java并发编程_原理

1.volatile 原理 在当前的 Java 内存模型下,线程可以把变量保存本地内存(⽐如机器的寄存器)中,⽽不是直接在主存中进⾏读写。这就可能造成⼀个线程在主存中修改了⼀个变量的值,⽽另外⼀个线程还继续使⽤它在寄存器中的变量值的拷⻉,造成数据的不⼀致。而volatile就是用来解决这个问题的,volatile主要作用就是保证可见性和有序性(禁止指令重排序)。 volatile如何保证可见性? 写屏障保证了 写屏障之前对共享变量的改动同步到主存中,读屏障保证了读屏障后,对共享变量的读取是从主存中读取

2020-09-05 21:30:38 496

原创 io多路复用的演进

一次网络通信的流程: 服务端进程: //创建socket int s = socket(AF_INET, SOCK_STREAM, 0); //绑定 bind(s, ...) //监听 listen(s, ...) //接受客户端连接 int c = accept(s, ...) //接收客户端数据 recv(c, ...); //将数据打印出来 printf(...) ················这个时候网卡传来了数据。············· 1.网卡作用? 将网接收到的网络数据写入内存中

2020-09-05 20:33:57 192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除