大淘客做网站,如何用word做网站,建网站没有公司资质,手机网站建设系统目录
C语言中堆和栈的区别
局部变量和全局变量
指针数组、数组指针、指针函数、函数指针
什么时候使用线程和进程
三次握手
const和#define相比有哪些优点
封装、继承和多态
父进程和子进程 C语言中堆和栈的区别 存储内存不同。 管理方式不同。 空间大小不同。 能够产生…目录
C语言中堆和栈的区别
局部变量和全局变量
指针数组、数组指针、指针函数、函数指针
什么时候使用线程和进程
三次握手
const和#define相比有哪些优点
封装、继承和多态
父进程和子进程 C语言中堆和栈的区别 存储内存不同。 管理方式不同。 空间大小不同。 能够产生碎片不同。 生长方向不同。 分配方式不同。 分配效率不同。 局部变量和全局变量 在内存管理里面全局变量放在静态区局部变量在栈上面去申请空间 指针数组、数组指针、指针函数、函数指针 指针数组本质是一个数组它的每一个成员都是一个指针。 数组指针本质是一个指针指向一个数组相当于它的一个指针里存的都是数组的首地址。 指针函数本质是一个函数它的一个返回值是一个指针类型。 函数指针本身是一个指针它指向的是一个函数相当于这个指针存储的是函数的首地址。 什么时候使用线程和进程 进程是操作系统分配资源的基本单位线程是操作系统调度的基本单位。一个进程中至少包含一个线程线程不能独立于进程而存在进程不能共享资源而线程是可以的。线程可以看做是轻量级的进程他们的关系可以从这些角度看从属关系共享资源上下文切换的速度和操作对象的不同。 一个进程创建线程的数目由可用的虚拟空间和线程的栈的大小共同去决定只要虚拟空间足够这个线程就可以创建成功。理论上一个进程可用的虚拟空间大小事2G默认情况下一个线程可用的栈空间大小是1MB所以理论上最多只能创建的线程个数是2048个如果想要去创建多余2048个线程的话就需要去修改编译器的设置。如果要创建2k以上个数的线程就需要减少线程栈的大小一般情况下不需要这么多的线程。 当频繁创建和销毁的时候要用线程创建一个进程要比创建一个线程的代价高出很多而且耗时的操作使用线程可以提高应用程序的响应速度。并行操作的时候使用线程。考虑数据安全性的时候选用进程。提高单核CPU利用利用线程多核分布要用进程。 三次握手 是客户端向服务器建立连接的过程第一次握手客户端向服务器发送SYN包等待服务器的确认。第二次握手服务器收到SYN包并回复客户端SYN加ACK包。第三次握手客户端收到服务器的SYN加ACK包并向服务器发送ACK确认包。这样TCP连接成功完成三次握手。 const和#define相比有哪些优点 const是用于定义常量的关键字#define是一个预处理指令处理的阶段是不同的const常量可以有数据类型而宏常量没有数据类型分析器对const进行类型安全检查只进行字符替换没有类型安全检查容易引起类型错误。const根据使用位置有不同的作用域。 封装、继承和多态 封装是实现面向对象程序的第一步就是将数据或者函数等集合在一个个的单元中我们称为“类”封装的意义在于保护或者防止代码数据被无意中的破坏。 继承主要实现复用代码节省开发时间。子类可以继承父类的一些属性和功能。 多态是同一操作作用于不同的对象可以有不同的解释产生不同的执行结果。在运行的时候可以通过指向基类的指针来调用实现派生类当中的方法。 父进程和子进程 父进程调用fork函数后克隆出一个子进程子进程和父进程拥有相同的内容和代码段/数据段和用户堆栈。父进程和子进程谁先执行是不一定的要看CPU的调度所以一般会设置父进程等待子进程执行完毕后再执行。