12 2019 档案
摘要:UDP: 1.无连接: 不需要建立连接,可以直接传输数据 2.不可靠: 没有确认和重传机制,感受不到对方是否收到消息 3.面向数据报: 不能灵活控制读写数据的次数和大小,不能拆分和合并数据,发送10k就必须取10k,取1k剩下的就没了 UDP没有真正意义上的发送缓冲区,调用sendto直接交给内核处
阅读全文
摘要:死锁: 指多个进程/线程并发执行中,由于争抢资源而造成的阻塞现象。 产生死锁的必要条件: 1.互斥:进程请求的资源是临界资源 2.请求并保持:进程占有了资源,并同时请求其他资源 3.不可剥夺条件:进程占有的资源在未使用完之前,不可被剥夺 4.环路等待 解决死锁的方法: 预防死锁: 破坏产生死锁的条件
阅读全文
摘要:内存中的堆和栈 堆: 是程序员手动申请的空间,空间用完需要程序员自己手动释放,也可能会由OS回收,分配方式类似链表; 堆比较大,地址向上增长; 堆一般存放对象 栈: 是系统申请的空间,空间用完系统会自动释放; 栈比较小,地址向下增长; 栈一般存放局部变量 数据结构中的堆和栈 堆: 可以看做一颗树,比
阅读全文
摘要:进程的四大特点: 并发、共享、虚拟、异步。 进程调度便是实现并发的关键一环。 在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用。 1.先来先服务(FCFS) 一种简单的调度算法,适用于作业和进程调度。先来先服务算法按照进程/作业到达先后
阅读全文
摘要:快速排序是交换排序,是冒泡排序的改进版。 快排过程: 1.选定一个分界值 2.分成三个部分(小于分界部分,分界值,大于分界值部分) 3.对于分开的两部分重复上述操作,直到排序完成 C/C++代码: //分界值切分 //挖坑法: int PartSortWakeng(int *a, int begin
阅读全文