- 博客(9)
- 收藏
- 关注
原创 生产者消费者问题及llinux系统下的实现
想想如果先上锁会怎样->假如生产者lock(上锁),这时只能紧接着执行p操作,然后要向缓冲区写入内容,但是如果缓冲区这时候是满的呢,就会无法写入,同时已经lock操作了,消费者也没机会从缓冲区取出东西,就会发生死锁!而是当有机会去生产或者有机会去消费的时候,就会抓紧机会去做该做的事,这其实是与线程的并发性有关,各个线程会去争抢资源,而我们要做的就是处理好这种竞争关系,避免陷入死锁这种情况。当有消费者从缓冲区取出东西时,其他消费者不可以从缓冲区取出东西。接着,当生产者执行p操作,写完、开锁、v操作、结束。
2023-11-15 00:46:23
67
原创 C语言连接sql server实现增删改查
上数据库课时老师布置的一份作业,在做这个之前甚至不会sql server,硬是查了网上所能查到的还学了一点sql server才理解做出,非原创,只是整合了大佬们留下的各种代码,方便后来者看一看吧。
2023-10-05 00:41:41
1181
3
原创 c语言内存管理
以win32系统为例进行分析。大致分为:非法访问区、代码区、数据区、堆、栈以及系统内核这六部分。其中,系统内核使用2G空间,剩下2G的为用户使用。可以再细分出存放字符常量、存放全局变量,不过这里为了好画图将其都包含在数据区里。代码区和数据区顾名思义,就是存放代码以及定义的各种全局变量、字符常量等。栈:由系统自动分配空间,例如局部变量、函数参数都是保存在栈里。堆:由程序员自己根据需求开辟和释放,一切都要自己完成。
2023-09-18 03:53:07
35
原创 C语言,学生管理系统
这里设计保存文件在退出前保存,因此需输入5进行退出才能正确保存至.txt文件中。非科班应付大作业可以,科班需继续完善老师要求的内容。实现了基本的增、删、改、查以及文件读取操作。使用单链表存储相关内容。
2023-09-09 21:00:36
91
4
原创 字符串相关函数
参考上课内容及网上文章总结,仅供自己复习使用。字符串就是一串零个或多个字符,并且以一个模式全为0的NUL字节结尾。1.strlen() 字符串长度就是它所包含的的字符数量。//求字符串长度int my_strlen(const char* str){ assert(str != NULL); //检查指针的有效性 int i = 0; while (*str++) { i++; } return i;}int main(){ c
2023-09-06 20:03:29
62
2
原创 数据在内存中的存储~
对于正数来说,原码、补码、反码都一样。对于负数来说,原码取反为反码、反码+1为补码。在计算机中为了区分正数和负数引入了如0000 0001为+11000 0001为-1.在计算机中为什么使用补码?其目的在于,对于有符号位的数据如:1-1 可以表示为 1+(-1),这样便不必再设计减法器。
2023-09-05 23:01:05
66
2
原创 c语言指针
首先给出以下定义这里定义了五个变量,每个变量都进行了初始化,我们分别都给他们地址假定可以如下图表示:可以看出每个变量都对应包含着一个值,a、b不用多说,c先放着,来看定义的指针d、e.指针的初始化是由&操作符完成的,用于获取变量的内存地址,也就是说我们将a、c的内存地址分别用指针变量d、e保存起来。因此对于d来说它的内容是a的地址,e的内容是c的地址,这里注意要与d、e本身的地址区别开!d = 100;//a的地址e = 108;//c的地址*d = 112;*e = 3.14;
2023-09-02 16:56:10
66
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人