0%

使用muduo编写webserver

因为学习了muduo库,想通过muduo库写一个webserver作为项目,在muduo和tinyWebserver的基础上改了一下,简单的把他们融合了一下。

阅读全文 »

从0开始构建muduo(三)

加入net模块相关代码,net模块相关代码是muduo库的精髓,后面看了一下其实也比较简洁,容易看懂。

首先是将之前main中大大的while循环进行封装,编程EventLoop

阅读全文 »

从0开始构建muduo(二)

加入base模块下相关的代码,主要是和进程线程相关的操作封装,包括:原子类操作、线程操作、互斥锁、条件变量、日志类。这些原版都是是使用pthread相关实现的,自己实现的话可以通过C++11进行实现一下。

加入base模块之后,可以将echo的处理改成多线程(使用线程池)。

我这里实现是将接收到的消息进行了一个简单的翻转。

阅读全文 »

从0开始构建muduo(一)

学习了陈硕老师的《Linux 多线程服务端编程:使用 muduo C++ 网络库》,想自己动手写一个玩具,模仿陈硕老师的muduo库。muduo库大概10000行,本人自己写的肯定简略很多(毕竟只是玩具),只是为了自己熟悉这个网络库的实现。

阅读全文 »

深入理解计算机系统第3章练习题

练习题3.1假设下面的值存放在指明的内存地址和寄存器中:

image-20221025203611818

操作数
%rax 0x100
0x104 0xAB
$0x108 0x108
(%rax) 0xFF
4(%rax) 0xAB
9(%rax,%rdx) 0x11
260(%rcx,%rdx) 0x13
0xFC(,%rcx,4) 0xFF
(%rax,%rdx,4) 0x11
阅读全文 »

深入理解计算机系统第2章练习题

练习题2.1完成下面的数字转换:

A.将0x39A7F8转换为二进制。

B.将二进制1100100101111011转换为十六进制。

C.将0xD5E4C转换为二进制。

D.将二进制1001101110011110110101转换为十六进制。

阅读全文 »

系统检测工具

学习《Linux高性能服务器编程》第十七章多线程编程,里面介绍了各种Linux中提供给开发人员调试和测评的服务器程序,为了印象深刻一些,多动手多实践,所以记下这个笔记。

阅读全文 »

多线程编程

学习《Linux高性能服务器编程》第十四章多线程编程,里面介绍了各种Linux编程中多线程编程的内容,为了印象深刻一些,多动手多实践,所以记下这个笔记。

这一章分为创建线程和结束线程、线程属性、Posix信号量、互斥锁、条件变量。

阅读全文 »

多进程编程

学习《Linux高性能服务器编程》第十三章多进程编程,里面介绍了各种Linux编程中多进程编程的内容,为了印象深刻一些,多动手多实践,所以记下这个笔记。这一篇主要记录Linux中。这一章分为fork系统调用、exec系列系统调用、处理僵尸进程、信号量、共享内存、消息队列、IPC命令。

阅读全文 »