c++八股
文章平均质量分 83
八股
一步徐龙
这个作者很懒,什么都没留下…
展开
-
c++八股之操作系统篇
因此,一个进程可以创建的线程数由可用虚拟内存和线程的栈的大小共同决定,只要虚拟空间足够,那么新线程的创建就会成功。在计算机中并不是原子操作,设计内存取数,计算和写入内存的几个环节,而线程的切换有可能发生在上述任何一个环节中间,所以不同的操作顺序很有可能带来意想不到的结果。这里讨论用户态的多线程模型,同一个进程内部有多个线程,所有的线程共享同一个进程的内存空间,进程中定义的全部变量会被所有的线程共享,比如全局变量。的值,而多个线程被cpu调度的顺序又是不可控的,所以对临界资源的访问尤其需要注意安全。原创 2024-08-13 19:24:04 · 360 阅读 · 0 评论 -
c++八股之网络篇
一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是TCP的拆包和粘包问题。应用程序写入数据的字节大小大于套接字发送缓冲区的大小进行MSS大小的TCP分段(MSS = TCP报文段长度-TCP首部长度)以太网的payload大于MTU进行ip分片(MTU指:一种通信协议的某一层上面所能通过的最大数据包大小)消息定长在包尾部增加回车或者空格符等特殊字符进行分割将消息分为消息头和消息尾使用其他复杂的协议,如RTMP协议等。原创 2024-08-13 19:22:55 · 876 阅读 · 0 评论 -
c++八股之语法篇
编译阶段define是在编译的预处理阶段起作用,const是在编译、运行时候起作用安全性define只作替换,不作类型的检查和计算,也不求解,容易产生错误。一般加括号包裹住每一个部分,不然很容易出错const常量有数据类型,编译器可以对其进行类型安全检查内存占用define只是将宏名称进行替换,在内存中会产生多份相同的备份。const在程序运行中只有一份备份,且可以执行常量折叠,能将复杂的表达式计算出结果放入常量表宏替换发生在编译阶段之前,属于文本插入替换;const作用于发生编译过程中。原创 2024-08-13 19:21:30 · 982 阅读 · 0 评论