- 博客(9)
- 收藏
- 关注
原创 线程相关内容
进程:一个正在运行的程序,资源分配的基本单位;线程:进程内部的一跳执行路径,调度和执行的基本单位。用户级:创建开销小,由线程库直接管理。无法使用多处理器的资源。内核级:创建开销大,由内核直接管理。可以使用多处理器资源。线程安全的函数:上面的函数,我们希望实现 主线程对 abc.. 进行分割,fun对 123 分割,但是实际结果如下:并没有像我们想象的结果。有些人会认为是没有加锁导致的,但是主要问题在于 strtok()不能在多线程使用。它会在同一个内存位...
2021-08-16 10:36:29
89
原创 消息队列 线程
消息队列添加消息时,类型必须大与0;读取的时候 参数 0 表示读取所有的类型数据结构体可以自定,数据类型也可以自定,但第一个参数必须是长整形long执行多次写入,数据都会存入消息队列。读操作可以通过不同的参数来读取对应类型的数据,参数0可以读取所有类型的数据。线程进程:一个正在运行的程序 资源分配的基本单位线程:进程内部的一条执行路径(序列) 调度和执行的基本单位pth...
2021-08-14 09:46:03
374
原创 信号量 共享内存
信号量p 获取资源 -1 (有可能阻塞)v 释放资源 +1属于原子操作(不可被分割)临界资源 :同一时刻只允许一个进程访问的资源临界区:访问临界资源的代码段大概过程:1. 创建信号量,并初始化2. 对信号量进行pv操作3. 销毁信号量例:...
2021-07-05 16:59:55
264
原创 进程间通信 - 管道
进程间通信 ipc :管道 信号量 消息队列 共享内存 套接字管道:1.有名管道 无名管道 区别?有名可以在任意两个进程间通信,无名只能在父子进程间使用。2.写入管道的数据在哪里?内存中3.管道是一个半双工的通信方式头指针写,尾指针度,开始都在头部使用操作有名管道mkfifo + name 创建管道文件 -p 大小是0,写入管道的数据在内存中open read write close 操作管道文件只能是 只读或者 只写示例:...
2021-06-30 18:21:16
70
原创 Linux库文件生成和使用
1.什么是库文件库是一组预先编译好的方法的集合。linux系统库一般在: /lib 和 /usr/lib 。在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。...
2021-06-16 17:37:12
269
转载 CPU中的寄存器
刚学习寄存器这部分内容,转载备份,后续在查些资料详细学习下4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存..
2021-04-05 21:05:08
2599
原创 指针
*号意义: 1.乘法 2. int *p 声明指针 3. p=&a; *p = 100; 解引用int *s *和变量名结合; int *p,r; (指针,整型)指针种类: 空指针,野指针,失效指针指针大小:32位 4个字节,64位 8个字节。&ip => 0x00d5f8ec &ip =>0x00d5f8ec ip => 0x00d...
2021-03-23 17:28:16
91
1
原创 C语言概述
1.C语言的编译链接过程2.数据类型大小sizeof(char) = 1 sizeof(short) = 2 int = 4 long int = 4 long long = 8 (整型)float = 4 double = 8 long doule = 8/12/16 (操作系统) bool = 13.变量,常量,标识符定义:定义就是为这个变量分配了一块内存并且取了名字(变量名),一旦名字和内存匹配,共同...
2021-03-17 20:18:10
84
原创 数组 指针 总结
数组: 相同数据类型的集合,并且是一块连续的内存单元数组聚合类型:初始化只有一次。arr1[5] 如果数组只进行了声明,那么初值为随机值!!arr2[5]={1,2,3} 如果局部初始化,其他元素值为0!! 1 2 3 0 0arr3[5]={} 0 0 0 0 0arr数组名代表数组的首地址;...
2018-07-24 02:21:46
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人