自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【计算机网络】TCP全连接队列和半连接队列

在内核中维护了两个队列,全连接队列,半连接队列。他们在下图中表示。可以看到在收到客户端的SYN包之后,就会将这个socket放入半连接队列。在服务端收到最后一个ack的时候,放入全连接队列。

2024-02-22 09:37:08 141 1

原创 为什么epoll需要将socket设置为非阻塞

clientfd和listenfd设置为非阻塞的行为

2024-02-20 10:57:06 814

原创 水平触发和边缘触发

为什么要使用非阻塞的socket?当多个进程监听同一个fd的时候,如果这个fd发生了三次握手,建立了连接,那么所有的进程都会收到通知。但是只有一个进程能够read到东西。如果此时不使用非阻塞的socket的话,那么一不小心就会阻塞进程了。

2024-02-18 11:54:54 103

原创 关于阻塞与非阻塞fd,和select的阻塞与非阻塞

io多路复用,阻塞,非阻塞

2024-02-18 11:35:09 124

原创 6.s081 lab1

6.s081 操作系统

2023-02-06 15:09:03 149

原创 关于RESTful风格的一些思考

REST风格和面向过程面向对象的设计方式有什么区别?从更高的层次上看,他们是抽象的层次或者说是角度不同。REST重点是抽象资源。面向过程编程时,为什么要以算法和处理过程为中心,输入数据,输出结果?当然是为了符合计算机世界中主流的交互方式。

2022-12-02 11:48:31 90

原创 go语言应该用指针还是值

go语言方法,函数究竟要用值还是指针?

2022-09-18 11:36:22 522

原创 Kryo序列化

register方法究竟啥用?刚开始使用的时候根本不知道这玩意啥用。原来必须要配合kryo.writeClassAndObject(output,obj);一起使用才行。单独注册但是如果使用kryo.writeObject(output, obj);那么是没用的。

2021-08-20 11:27:43 79

原创 tcp,http队头阻塞

这里有两种队头阻塞,是不一样的。tcp 队头阻塞TCP数据包是有序传输,中间一个数据包丢失,会等待该数据包重传,造成后面的数据包的阻塞。http队头阻塞http1.x采用长连接(Connection:keep-alive),可以在一个TCP请求上,发送多个http请求。有非管道化和管道化,两种方式。非管道化,完全串行执行,请求->响应->请求->响应…,后一个请求必须在前一个响应之后发送。管道化,请求可以并行发出,但是响应必须串行返回。后一个响应必须在前一个响应之后。

2021-07-29 10:13:59 542

原创 Leetcode 17.电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。解法一class Solution { public List<String> ret = new ArrayList<>(); public static Map<Character, String> phoneMap = new HashMap<Character

2021-06-28 12:42:11 55

原创 Leetcode合并区间

合并区间以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].解法:可以将给定的intervals数组中的数字..

2021-06-25 21:32:29 100

原创 静态代理与动态代理

本文不讲概念,主要讲代码实现。静态代理从 JVM 层面来说, 静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。1.定义发送短信的接口// 定义一个必须要去实现的接口public interface SmsService { String send(String message);}2.实现发送短信的接口public class SmsServiceImpl implements SmsService { public String s

2021-06-23 11:32:56 93

原创 枚举与单例模式

枚举枚举的用法:enum Weekday { MON("1",1){ @Override public String toString() { return super.toString(); } // 注意这里重写了 @Override public boolean isOrdered() { return true; } },

2021-06-23 10:39:06 204

原创 快速幂算法思路

这里写自定义目录标题的的欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入的的欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何

2021-06-16 11:45:56 182

原创 gethash的实现

geohash算法介绍首先得到某一个点的经度和纬度(比如说 34.1° , 115° ),这个是能够精确得到的。然后,先从经度开始判断。比如说经度115 > (-180 和 180 的中间值)0° ,所以生成1,然后继续切分 (在剩下的 0 - 180)之间。在90的右边,继续生成 1,就这样不断地向下切分。得到一个二进制串,比如说01000111001… 当然可以无限切分。经度也是一样。然后按照经度为偶数位,纬度为奇数位进行合并。再用base32 编码进行编码。最后得到一串字符串。注意事

2020-11-26 16:43:11 865

原创 布隆过滤器基本使用

布隆过滤器基本原理:​ 原理就是维护一个很大的位数组。这个位数组的大小直接关系了最后判断的结果是否精确。确定好位数组之后,在确定几个hash函数。当添加一个值的时候,将这个值来进行hash运算,得到的结果对数组长度取余。并标记数组为1 。代表访问过。这样的话,如果判断一个元素是否存在,就按照上面的方法进行hash,如果有一个hash函数对应的数组位置上没有为1 ,那么这个元素一定不存在,如果所有hash的位置上都为1,也有可能 不存在,因为是别的元素放上去的1。所以还是有误差的。只不过这个误差可

2020-11-26 15:46:38 292

转载 SQL窗口函数详解

1.窗口函数语法<窗口函数>over(partitionby<用于分组的列名>orderby<用于排序的列名>)<窗口函数>的位置,可以放以下两种函数:1) 专用窗口函数,比如rank, dense_rank, row_number等2) 聚合函数,如sum. av...

2020-04-04 18:07:14 264

空空如也

空空如也

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

TA关注的人

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