摘要: 采用状态机视角分析: 1.初始状态 (父进程 [ (写口->管道入口) (读口->管道出口) ] ; 管道 (入口,出口) ) 2.执行fork命令,复制父进程后 (父进程 [ (写口->管道入口) (读口->管道出口) ] ; 管道 (入口,出口) ; 子进程 [ (写口->管道入口) (读口-> 阅读全文
posted @ 2022-04-19 15:27 阿豆23 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 假设当前要从栈中取字符拼接成字符串; 考虑到栈是倒序的,有两种拼接方式 一是直接先在结果串后面加上字符,随后调用反转函数,即可得到正确顺序的字符串 string result = ""; while (!st.empty()) { // 将栈中元素放到result字符串汇总 result += st 阅读全文
posted @ 2022-04-05 10:25 阿豆23 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 刷题中遇到一个错误 ==42==ERROR: AddressSanitizer: SEGV on unknown address 最后发现是一行判断的问题, if(s[i]!=st.top()||st.empty())//st是栈容器,s是字符串 其中将或判断左右的条件调换位置就可以正常执行了, 初 阅读全文
posted @ 2022-04-04 14:47 阿豆23 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 做个简单的比喻:进程=火车,线程=车厢,协程=车厢乘客 线程在进程下行进(单纯的车厢无法运行) 一个进程可以包含多个线程(一辆火车可以有多个车厢) 不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘) 同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易) 进程要比线程消 阅读全文
posted @ 2022-03-31 16:42 阿豆23 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 程序在多处理器上运行会因为,多个线程同时进行,而导致丧失语句的原子性。 例如读和写的操作是分开的,不能保证同时完成。 所以软件不够用硬件来凑,通过硬件实现一条指令完成读写:这就是自旋锁。 可以理解为一个房间门口桌上只放一把钥匙,每次有人想进就用其他东西交换钥匙, 拿到钥匙才能进入房间,拿不到钥匙的就 阅读全文
posted @ 2022-03-29 16:16 阿豆23 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 当需要进行查找速度优化时,就可以使用哈希表,需要使用额外的空间存储数据,随后可以提高查找效率。 常用的哈希表数据结构有三种:数组、集合(set)、映射(map)。 当数据量小时数组也可以有哈希功能: 例如统计字符串中字母出现次数,可以使用 s[0]~s[25] 的数组分别存储字母数量。 单当数据量无 阅读全文
posted @ 2022-03-28 09:58 阿豆23 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 根据5层原理模型,模拟用户访问网站的流程: 定义一个传输的帧X。 用户端: 首先应用层根据协议创建HTTP报文:X=HTTP 随后在运输层加入TCP报文段:X=HTTP+TCP 然后在网络层加入IP首部:X=HTTP+TCP+IP 到达数据链路层加入首部:X=ETH+HTTP+TCP+TP+ETH 阅读全文
posted @ 2022-03-26 17:00 阿豆23 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 可以理解一个线程就像一条单链表,依次执行每一步的操作。 当有多个线程时就像是增加了新的单链表。 在单处理器时代,同时只选取一个进程执行,所有可以很容易保证原子性。 此处引入原子性:即处理器和内存同一时间内被一个线程完全占有 但到了多处理器时代,就会出现多个线程同时进行,并且使用同一片内存。 这样自然 阅读全文
posted @ 2022-03-26 16:48 阿豆23 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 法律上定义为7层,但实际应用的是4层模型。 分层是为了把整个大问题,分解为不同方面的小问题解决。 总结如下: 应用层:解决进程间交互完成网络应用的问题(HTTP/FTP/DNS) 传输层:解决进程之间基于网络的通信,传输错误等问题。(TCP/UDP) 网络层:解决网络中各子网络与主机的标识问题,网络 阅读全文
posted @ 2022-03-24 16:55 阿豆23 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 程序本质上是状态机,可以理解为:计算+syscall 由此可知,任何程序的运行,都可以通过系统状态理解。 阅读全文
posted @ 2022-03-24 16:35 阿豆23 阅读(30) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示