一些乱七八糟的知识点(C++,Linux,OS等)

静态库和动态库的区别

简单来说,静态库会在编译出的可执行文件中包含库代码的一份完整拷贝。动态库是程序运行的时候由系统动态的加载到内存中供程序调用。

参考:

进程和线程的区别

进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。

线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

一个进程可以有多个线程,多个线程也可以并发执行。一个进程中的不同线程共享同一块内存空间。

常量指针和指针常量

const int *pint const *p:不能通过指针引用修改内存中的数据。

int* const p:指向的地址不能变,但是该内存中的数据可以改变。

参考:

网络的环形拓扑结构

注意数据是单向流动的。故一个节点出问题,网络就会崩溃。

参考:

C++ iomanip中的流控制函数

参考:

不同网络层次中的数据传输单位

  • 物理层:比特(Bit)
  • 数据链路层:数据帧(Frame)
  • 网络层:分组数据包(Packet)
  • 传输层:数据段(Segment)或报文

C++ std::thread, std::mutex等相关知识

#include <thread>:包括thread类及相关函数。

#include <mutex>:包括std::mutex, std::lock_guard, std::unique_lock等类,用来保证线程同步的,防止不同的线程同时操作同一个共享数据。

参考: