![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
clevor18
这个作者很懒,什么都没留下…
展开
-
如何理解网络编程中的阻塞、非阻塞I/O和同步、异步I/O
本文章只单纯讨论网络编程中的阻塞、非阻塞 I/O和同步、异步I/O,并不是广义上定义的对比。因为这两种说法在某些方面领域其实意思很接近,甚至可以混用,很难总结出一套说法适用于所有情况。但在用的较多的网络编程方面,这两种说法的区别还是很明确的。我们只要把握住核心的两点就可以很容易区分出到底属于哪种I/O操作:以网络编程中的recv数据过程为例,该过程可以简单理解为将内核空间收到的网络数据拷贝到用户空间。1. 是用户进程负责将内核空间数据拷贝到用户空间,还是内核进程负责这个拷贝过程。如果是用.原创 2020-05-31 00:38:28 · 1912 阅读 · 1 评论 -
关于UML 依赖、关联、聚合、组合几种类间关系的思考
依赖关系:表示一个类的定义依赖于另一个类的定义。一般而言,依赖关系体现为局部变量、方法的形参、或者静态方法的调用。关联关系:使一个类知道另一个类的属性和方法,体现为指针或引用成员变量,一般特指处于并列关系的类包含对方类型的成员变量。比如杯子和碗,桌子和椅子等。聚合关系:关联关系中的一种强关联,表现的是整体和个体之间的关系。比如汽车与汽车零件之间的关系,但是整体和个体有各自的生命周期,整体并...原创 2019-11-02 14:33:19 · 401 阅读 · 0 评论 -
C/C++关于普通函数,成员函数,静态成员函数,函数指针的理解
最近在学习C++11的多线程技术,对std::thread构造函数需要传入的第一个参数的类型产生的疑惑,在C++11中增加了可调用对象(Callable Objects)的概念,包括以下几种:函数指针 重载operator()运算符的类对象 lambda表达式 std::functionstd::thread的第一个参数要求的类型就是Callable Objects,让我产生疑惑就是第...原创 2019-06-08 07:06:47 · 1062 阅读 · 0 评论