- 博客(34)
- 收藏
- 关注
原创 Linux网络编程:多路转接--poll/epoll
也是一种多路转接的方案,poll中监听的文件描述符数目增多时 和select函数一样,poll返回后,需要轮询pollfd来获取就绪的描述符. 次调用poll都需要把大量的pollfd结构从用户态拷贝到内核中. 同时连接的大量客户端在一时刻可能只有很少的处于就绪状态, 因此随着监视的描述符数量的增长, 其效率也会线性下降.
2024-08-25 22:18:08
1162
原创 Linux网络编程:多路转接--select
select只负责等待,可以等待多个fd,select本身无数据拷贝的能力,拷贝需要read、write来完成。程序会停在select这里等待,直到被监视的文件描述符有一个或多个发生了状态改变。select系统调用是用来让我们的程序监视多个文件描述符的状态变化的;使用telnet作为客户端向服务器发消息时,收到了服务端的响应。系统提供select函数来实现多路复用输入/输出模型.下面的代码只考虑了写事件。2. select接口。
2024-08-25 18:32:36
788
原创 Linux系统编程:传输层(补充)
在前面介绍了UDP是一种不可靠的面向数据包的传输协议。那么其实就是在应用层自己实现像TCP一样的可靠性机制:引入序列号、引入确认应答、超时重传、流量控制、拥塞控制等机制。
2024-07-27 14:06:59
647
原创 Linux:传输层(2) -- TCP协议(1)
现在做一个测试首先启动server,然后启动client,然后用Ctrl-C使server终止这时马上再运行server, 结果是:这是因为虽然server的应用程序主动终止了,但是其。
2024-07-24 20:56:26
873
原创 Linux系统编程--进程间通信
本文介绍了进程间同系的几种方式,包括匿名管道、命名管道、SystemV共享内存、信号量每以及每个方法的demo代码实现。
2024-06-29 13:43:09
1348
原创 Linux系统编程--软/硬连接
当把原文件删除时,软连接得到的新文件在闪烁,新文件是没有被删除的,软连接是一个独立的文件,内容里面保存着它所指向的文件路径也就是myfile.txt的文件路径。而硬链接得到的新文件除了链接数-1以外没有别的变化,里面的内容也没有变化。对myfile.txt进行操作时,hard_file.txt的属性也发生了变化,内容也与myfile.txt相同。硬链接得到的新文件与原文件相同,得到的新文件inode不同且链接数+1.那么。简而言之,软连接其实就相当于windows下的快捷方式,从而快速的找到别的文件。
2024-06-23 22:22:42
521
原创 Linux系统编程:进程概念(1)
进程信息被放在一个叫做的数据结构中,可以理解为进程属性的集合。PCB中包含进程所有属性。Linux操作系统下的PCB是: task_struct.所有运行在系统里的进程都以task_struct链表的形式存在内核里。所谓的对进程做管理就是对进程对应的PCB进行相关的管理。--进程的信息可以通过 /proc 系统文件夹查看----进程ID:PID 父进程ID:PPID 其余的各项会在后面解释。
2024-04-30 14:39:40
565
1
原创 Linux系统编程:多线程(1)
本文主要介绍了线程的概念、线程控制、线程互斥、死锁的概念。给出了一些实际的代码,多线程其余的部分将在后面的文章中陆续讲解,感谢支持!!
2024-04-20 13:34:12
837
1
原创 C++数据结构--哈希(散列)表
α = 填入表中的元素个数 /散列表的长度α是散列表装满程度的标志因子。由于表长是定值,α与“填入表中的元素个数”成正比,所以,α越大,表明填入表中的元素越多,产生冲突的可能性就越大:反之,α越小,标明填入表中的元素越少,产生冲突的可能性就越小。实际上,散列表的平均查找长度是载荷因子α的函数,只是不同处理冲突的方法有不同的函数。对于开放定址法,荷载因子是特别重要因素,应严格限制在0,7-0.8以下。超过0.8,查表时的CPU缓存不命中(cachemissing)按照指数曲线上升。
2024-01-18 16:30:50
897
1
原创 二叉平衡树(AVLTree)
本文详细讲解了,AVL树的插入,以及在插入时,树是如何旋转并更新平衡因子的。还有完整的代码实现,创作不易,希望对大家有帮助。如果有错误换,欢迎大家的指出
2023-12-29 11:40:55
995
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人