任务优先级 Linux系统中任务优先级分为两种:一种是静态优先级,一种是动态优先级 静态优先级指的是任务一旦设置好优先级之后就不能再改变,相当于是任务本身的属性,优先级范围是0~99,优先级数值越大则优先级越高。 普通任务的优先级是0,系统任务的优先级是1~99 pthread_attr_setin ...
POSIX信号量 信号量分为匿名信号量和具名信号量两种 匿名信号量 sem_init函数 该函数可以对POSIX匿名信号量进行初始化。 int sem_init(sem_t *sem,int pshared,unsigned int value) //sem:由sem指向的匿名信号量的地址 //ps ...
读写锁 ptehread_rwlock_init函数 此函数可以对一个读写锁进行初始化操作 pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER int ptehread_rwlock_init(pthread_rwlock_t *rwlock , ...
程序中有3个线程,主线程A创建一个文本,每隔6s获取一次系统时间并写入到该文本中,另外两个线程B和C分别从文本中读取当前的时间和日期,子线程B输出系统时间”hh:mm:ss”,子线程C输出系统日期”2025年05月9日”,使用读写锁实现互斥。 /*************************** ...
pthread_create函数 此函数可以创建一个线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); //thread:该参 ...
设计程序,进程A专门创建一个信号量集,要求信号量集中有1个信号量,对信号量集合中的信号量进行设置,要求集合中的信号量的初值为1,然后再设计2个程序,分别是进程B和进程C,要求进程B和进程C使用进程A创建的信号量集合中的信号量实现互斥访问。进程B对变量进行+1操作,写入共享内存,进程C读取共享内存的数 ...
设计两个进程,进程A申请一块共享内存,并向内存中写入数据,进程B从共享内存中读取数据并输出 /******************************************************************************** * * * 共享内存练习 * author: ...
进程A创建一条消息队列之后向进程B发送SIGUSR1信号,进程B收到该信号之后打开消息队列并把进程的PID作为消息写入到消息队列中,进程B在写入消息之后,发SIGUSR2信号给进程A,进程A收到该信号则从消息队列中读取消息并输出。 /********************************* ...
共享内存 共享内存是物理内存中的一段内存空间,而物理内存是由内核进行维护的,所以进程必须向操作系统申请一块物理内存。 shmget函数 使用此函数可以向内核申请物理内存 int shmget(key_t key,size_t size,int shmflg) //key:IPC对象使用的键值,fto ...
ipcmk命令 此命令可以创建ipc对象 ipcmk -Q //用于创建消息队列 msgget()函数 此函数可以获得之前创建的消息队列的标识符 int msgget(key_t key,int msgflg) //key:指的是要创建的消息队列的key键值,键值类型key_t其实在内核源码中指的是 ...
进程 fork函数 此函数可以创建一个进程 pid_t fork(void)//使用此函数可以创建一个进程 //ret:成功在父进程中返回子进程的pid,在子进程中返回0;失败返回-1 getpid函数 此函数可以得到当前进程的pid pid_t getpid(void) //ret:返回当前进程的 ...
定义 原子操作(Atomic Operation)是指在执行过程中不会被中断的操作。换句话说,它是一个不可分割的操作,要么全部完成,要么全部不执行,不会出现部分完成的情况。原子操作在多线程编程和并发环境中非常重要,它可以避免多个线程同时访问共享资源时出现的竞争条件(Race Condition)。 ...
基于C语言的控制数据库脚本 开发环境基础 编译器:Visual Studio Community 2022 数据库:MySQL 8.0.37 Community 前戏准备 复制文件和路径 找到MYSQL的安装目录 复制“lib文件夹里的libmysql.dll文件” 例: 复制目录下include和 ...
1. 函数指针 首先,它是一个指针,这个指针指向一个函数,或者说这个指针存放着函数的地址 #include <iostream> // 声明函数 int add(int x, int y); // 定义函数 int add(int x, int y) { return x + y; } int ma ...
关于快速选择排序程序第一趟划分流程分析 问题1:{28,16,32,12,60,2,5,72}选择28作为基准第一趟划分分析 下面详细分析数组 {28, 16, 32, 12, 60, 2, 5, 72} 以 28 作为基准进行第一趟划分的过程。 初始状态 [28, 16, 32, 12, 60, ...
写入文件 字符写入 //c:要写入的字符 //stream:写入的文件指针 //返回值:成功返回写入的字符,失败返回EOF int fputs(int c,FILE *stream); int puts(int c,FILE *stream); int putchar(int c); 按行写入 // ...
打开文件 打开文件函数说明 //pathname->待打开的文件的路径 //mode->访问文件的权限 //"r":以只读的方式打开,文件必须存在 //"r+":以读写的方式打开,文件必须存在 //"w":以只写的方式打开,如果文件不存在,则创建;如果存在,内容会被清空 //"w+":以读写的方式打 ...
C_LINK_LIST 这是单链表和双链表的基本结果 点击查看代码 //single_link_list struct NODE int value; struct NODE * next; } ```c //double linked list struct NODE{ int value; st ...
大家下午好哇,好蛋在这里利用水课的时间整理一下好蛋学校平时的一道编程作业呦~ https://www.luogu.com.cn/problem/P8647 P8647蓝桥杯2017省AB 分巧克力 儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第 ...
P1459 三值的排序 Sorting a Three-Valued Sequence 题目描述 排序是一种很频繁的计算任务。现在考虑最多只有三值的排序问题。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。 写一 ...