
系统网络并发编程
文章平均质量分 87
遨游的laugh哥
CS
展开
-
多线程同步
比如有两个进程A和B,它们共享一个固定大小的缓冲区,A进程产生数据放入缓冲区,B进程从缓冲区中取出数据进行计算,那么这里其实就是一个生产者和消费者的模式,A相当于生产者,B相当于消费者。原创 2024-09-18 02:06:50 · 767 阅读 · 0 评论 -
IO多路复用
(1)同步阻塞IO 传统的IO模型。整个IO请求的过程中,用户线程是被阻塞的,这导致用户在发起IO请求时,不能做任何事情,对CPU的资源利用率不够。(2)同步非阻塞IO 默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。 虽然用户线程每次发起IO请求后可以立即返回,但是为了等到数据,仍需要不断地轮询、重复请求,消耗了大量的CPU的资源。一般很少直接使用这种模型,而是在其他IO模型中使用非阻塞IO这一特性。(3)原创 2024-09-04 13:34:39 · 1360 阅读 · 0 评论 -
链接:动态库和静态库
-o不仅可以指定输出的可执行文件,还可以指定中间文件的输出要想程序能够被gdb调试,必须在编译时加上调试信息,也即是加上选项😄库的定义:😄在项目中使用库一般有两个目的:汇编后得到的主程序的.o文件和库文件通过链接得到最后的可执行程序要使用库一定是由三个部分组成:库文件、头文件、文档说明一般这个库本身就是函数的定义头文件就是函数声明例子:但是一定不能把main.cpp指定在自己定义的库文件之后静态库特点总结:动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时候才被载入。动态链接库是程序运行时加载原创 2024-08-30 02:00:20 · 841 阅读 · 0 评论 -
简单的Tcp服务器
源代码文件目录(src)这里有main.cpp,是服务器端程序头文件目录(include)各种.h文件实例程序文件目录(test)这里写一个客户端连接程序项目构建文件(Makefile)完成项目的编译。原创 2024-08-26 13:59:24 · 780 阅读 · 0 评论