- 博客(10)
- 收藏
- 关注
原创 面试某些问题
线程创建与销毁的开销以及线程竞争造成的性能瓶颈。通过预先创建一组线程并复用它们,线程池有效地降低了线程创建和销毁的时间和资源消耗。同时,通过管理线程并发数量,线程池有助于减少线程之间的竞争,增加资源利用率,并提高程序运行的性能。(1)线程创建开销解决多线程环境下,每当需要执行一个任务时,创建与销毁线程都需要额外的系统资源。线程池通过预先创建一定数量的线程,可以减少这种资源消耗。(2)线程竞争问题解决过多的线程可能导致线程竞争,影响系统性能。
2023-09-17 22:45:12 152 1
原创 C++相关
1.内敛用解决的事。宏定义难以实际使用,且不支持调试,也没有类型安全的检查。只有几行的函数进行创建栈帧等操作耗时,使用内敛提前替换可提高效率。2.inline是一种以空间换时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换函数调用,缺陷:可能会使目标文件变大,优势:少了调用开销,提高程序运行效率。
2023-09-05 21:00:00 131 1
原创 操作系统和计算机网络
应用场景:(1)网站的计数器,如果网站存在多个计数器,每个用户的访问都刷新一次计数器的值,这样的话计数器的值是难以同步的,但单例模式就不会存在这类问题,而且还可以避免线程安全的问题。(2)多线程的线程池中的设计一般也是采用的单例模式,这是因为线程池需要方便对线程池的池中的线程进行同样的控制,比如一些应用程序的日志应用,或者web中开发中读取配置文件都适合使用单例模式,例如httpApplication就是单例的典型应用。3)对互斥锁进行加锁后,任何其他试图再次对互斥锁加锁的线程将会被阻塞,直到锁被释放。
2023-08-31 15:10:03 71
原创 MIT6.828 - lab2 内存管理
二级页表与页表项第一级页表为页表目录,其页表项指明第二级页表中各页表的地址页目录表页面的物理地址存放在CR3中,仅高20位有效,低12位必须设置为0(因为页面4K对齐)第二级页表的页表项将线性地址(虚拟地址)映射到物理地址(实地址)页表项共32位,其中高20位是页面基址,在页表中表示实页号,在页目录表中页面基址*2^12=相应页表的首地址(2^ 12:一个页面尺寸为4KB(2^ 12),和GDT表相同,页目录表的索引给出的是第二级页表的序号);低12位说明页(页表)的控制状态信息;
2023-06-08 15:40:40 329 1
原创 MIT 6.828 - Lab1
是随着CPU的发展,CPU的地址线个数从原来的20变为32根可以访问的空间也从1MB变为4GB,寄存器的位数也变为32位。在这里有对内核堆栈进行初始化设置,内核声明了一块32Kb的空间作为堆栈使用,而堆栈指针指向的是最高地址,因为堆栈是向下生长的,堆栈有两个重要的寄存器分别是esp和ebp,ebp(i)所指向的内存单元处存放着上一层程序的ebp寄存器的值,即ebp(i-1),在esp(i)所指向的内存单元处存放着对下一层子程序调用时传入的参数,即i+1。这条指令过后,就开始工作在具有分页机制的模式之下了。
2023-06-01 21:47:30 631
原创 ubuntu网络图标消失
因为ubuntu登陆,莫名其妙无法连接,百多搜索结果整理与尝试过程。一.引用自该方法在ubuntu18版本时成功,升级为20版本后失败。据网上所说,大多数人用该方法后成功。
2023-05-05 20:53:51 3424 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人