自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Linux系统最多可以创建多少进程,每个进程可以创建多少线程

在Linux操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址 空间的范围也不同。比如最常⻅的32位和64位系统,如下所示:32位系统的内核空间占用1G,位于最高处,剩下的3G是用户空间;64位系统的内核空间和用户空间都是128T进程最多可以创建多少线程进程的虚拟空间上限:创建一个线程,操作系统会为其分配一个栈空间,线程数量越多,需要的栈空间越大,虚拟内存占用的就会越多。系统参数限制:linux没有内核参一个数限制单个

2022-11-29 23:05:47 1828

原创 进程间通信方式

主要有6种,管道(匿名、命名),信号量,消息队列,信号,共享内存,套接字1.管道:它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。它可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。管道分为pipe(无名管道)和fifo(命名管道)两种,除了建立、打开、删除的方式不同外,这两种管道几乎是一样的。他们

2022-11-29 23:04:00 141

原创 操作系统的内存管理

计算机储存层次寄存器:cpu提供 读写ns极别 容量是字节级别主存:动态内存,读写100ns极别容量GB极别外部储存介质:磁盘等 读写ms极别 容量TB级别内存内存最小的储存单位大多是一个字节 内存内存地址为每一个字节的数据编号 从0开始 每次增加1 这种线性储存的地址称为线性地址内存纯村单元采用的是随机读取存储器 所谓随机存储器指的是储存器的读取时间与所在位置无关 加入读取时间与所在位置有关那么很难把控进程的运行时间所以随机读取的特性使内存成为主储存器的关键因素早期的内存分配机

2022-11-29 23:01:14 201

原创 说说c++和c语言的区别

c++是面向对象的语言,而c是面向过程的语言 c++引入运算符,取代了c中的mallocfree库函数 c++引入引用的概念,而c中没有 c++引入类的概念,而c中没有 c++引入函数重载的特性,而c中没有类型 c++中有bool,c中没有

2022-11-29 22:54:38 195

原创 c++中struct和class的区别

struct一般用于描述一个数据结构的集合,而class是对一个对象数据的封装 struct中默认的访问控制权限是public的,而class中默认访问权限是private的,例如:struct A{int iNum}//默认访问权限是publicclass B{int iNum;}//默认访问权限是private在继承关系中,struct默认是公有继承,而class是私有继承; class关键字可以用于定义模板参数,就像typename,而struct不能用于定义模板参数,例如:te

2022-11-29 22:53:43 338

原创 指针和引用的区别

指针和引用的区别1.引用在定义时必须被初始化,指针没有要求 引用的特点是必须初始化,指针不初始化就是野指针,若初始化可以初始化为NULL,NULL在c++中是宏定义0,在c语言中是(void*)0,我们常用的是NULLPTR是c++11中的。 2. 引用不能改变引用关系,指针随意 3. 有多级指针没有多级引用 4. 没有NULL引用,有NULL指针 想利用一个函数去修改主函数指针变量的值,参数要用二级指针,二级指针是用来修改一级指针的 5.引用++和指针++表达的含义不同 指针++是指针指

2022-11-29 22:52:12 186

原创 include头文件的以及双引号““和尖括号<>的区别

include头文件的以及双引号""和尖括号<>的区别区别:尖括号<>的头文件是系统文件,双引号""的头文件是自定义文件。 编译器预处理阶段查找头文件的路径不一样。(查找路径:使用尖括号的头文件的查找路径:编译器设置的头文件路径-->系统变量;使用双引号""的头文件的查找路径:当前头文件目录-->编译器设置的头文件路径-->系统变量)

2022-11-29 22:50:48 285

原创 c++编译时和c有什么不同

由于c++支持函数重载,因此编译器变异函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名。而c语言并不支持函数重载,因此编译c语言代码的函数时不会带上参数类型,一般只包括函数名。

2022-11-29 22:50:00 330

原创 c++从代码到可执行二进制文件的过程

c++从代码到可执行二进制文件的过程一个c++程序从代码到可执行文件,有四个过程,预编译,编译,汇编,链接。 预编译:展开所有头文件,宏置换,去掉注释,条件编译(对#ifend #endif判断) 编译:将代码转换为汇编代码 汇编:把汇编语言翻译成机器指令(代码段:主要包含的是程序的指令,不可写,可读,可执行。数据段:存放程序中用到的各种全局变量或者静态数据。可读可写可执行) 链接:合并各个.obj文件,合并符号表,解析符号表是否重定义 符号地址重定位 生成.exe文件

2022-11-29 22:49:04 703

原创 力扣35搜索插入位置

力扣35搜索插入位置

2022-11-29 19:41:54 77

原创 什么时候用多线程,什么时候用多进程(多进程多线程的使用场景)

什么时候用多线程,什么时候用多进程(多进程多线程的使用场景)频繁修改:需要频繁创建和销毁的优先使用多线程计算量:需要大量计算的优先使用多线程因为需要消耗大量CPU资源且切换频繁,所以多线程好一点相关性:任务间相关性比较强的用多线程,相关性比较弱的用多进程。因为线程之间的数据共享和同步比较简单。多分布:可能要扩展到多机分布的用多进程,多核分布的用多线程。但是实际中更常见的是进程加线程的结合方式,并不是非此即彼的

2022-11-25 00:04:31 2285 1

原创 程序计数器为什么是私有的

程序计数器为什么是私有的程序计数器主要有下面两个作用:1.字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。2.在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。需要注意的是,如果执行的是native方法,那么程序计数器记录的是undefined地址,只有执行的是Java代码时程序计数器记录的才是下一条指令的地址。所以,程序计数器私有主要是为了线程切换后能恢

2022-11-23 22:59:02 97

原创 虚拟机栈和本地方法栈为什么是私有的?

虚拟机栈和本地方法栈为什么是私有的?虚拟机栈:每个Java方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在Java虚拟机栈中入栈和出栈的过程。本地方法栈:和虚拟机栈所发挥的作用非常相似,区别是: 虚拟机栈为虚拟机执行Java方法 (也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务。所以,为了保证线程中的局部变量不被别的线程访问到,虚拟机栈和本地方法栈是线程私有的。

2022-11-23 22:57:59 226

原创 多进程和多线程区别

多进程和多线程区别多进程:操作系统中同时运行的多个程序多线程:在同一个进程中同时运行的多个任务举个例子,多线程下载软件,可以同时运行多个线程,但是通过程序运行的结果发现,每一次结果都不一致。 因为多线程存在一个特性:随机性。造成的原因:CPU在瞬间不断切换去处理各个线程而导致的,可以理解成多个线程在抢CPU资源。多线程提高CPU使用率多线程并不能提高运行速度,但可以提高运行效率,让CPU的使用率更高。但是如果多线程有安全问题或出现频繁的上下文切换时,运算速度可能反而更低。

2022-11-23 22:56:46 440

原创 进程和线程的区别

进程和线程的区别

2022-11-23 22:41:38 116

原创 多路io复用 select

多路io复用 select

2022-11-19 22:16:02 156

原创 多路io复用 poll

多路io复用 poll

2022-11-19 22:11:20 115

原创 多路io复用 Epoll

多路io复用 Epoll

2022-11-19 22:05:24 90

原创 c++图的广度优先遍历和深度优先遍历

图的广度优先遍历和深度优先遍历

2022-09-01 22:48:27 943 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除