![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 66
Bug.Remove()
海阔凭鱼跃,天高任鸟飞~
展开
-
多线程————线程池
线程池:线程池通俗点来讲就是有多个线程组成的集合,线程池内的线程在不使用时不会销毁,而是出于等待状态,当来任务时被唤醒执行任务。为什么要使用线程池?使用线程池的目的就是提高代码的性能,因为频繁的创建和销毁线程会占用较多的时间,影响效率。因此,通过使用线程池,可以节省线程创建和销毁所需的时间,提高程序的执行效率。对于一个线程池而言,其需要一个创建线程池的函数:CreateThreadPool();需要一个销毁线程池的函数:DestroyThreadPool();需要一个线程函数,让每一个线程在线程函数原创 2021-04-06 17:38:22 · 101 阅读 · 0 评论 -
内核对象——互斥量、事件、信号量
互斥量(互斥锁):在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。互斥量:更安全和灵活关键段:效率更高(因为关键段在用户模式下)创建互斥量:m_hMutx = CreateMutex(0,0,0);CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes,BOOL bInitialOwner,LPCTSTR lpName);lpMutex原创 2021-04-04 21:23:54 · 300 阅读 · 0 评论 -
线程同步——多线程
线程同步:解决线程并发的问题原子访问:同一时刻只允许一个线程访问资源(变量),volatile防止编译优化,对特殊地址进行稳定的访问InterlockedDecrement();(递减操作)关键段(临界区):同一时刻只允许一个线程访问一个代码段创建一个关键段变量:CRITICAL_SECTION cs;//关键段构造函数中初始化:InitializeCriticalSection(&cs);退出时删除关键段变量:DeleteCriticalSection(&cs);线程创建、退出原创 2021-04-03 22:28:06 · 100 阅读 · 0 评论 -
进制转换和类型边界值
前言:首先我们应该知道,一个字节由八个二进制数组成规则:1.sizeof(short int)<=sizeof(int)2.sizeof(int)<=sizeof(long int)3.short int 至少应为16位(2个字节)4.long int 至少应为32位(4个字节)32位环境char : 1个字节 -128~127unsigned char : 1个字节 0~255char * :4个字节short int: 2个字节原创 2021-04-03 10:43:45 · 577 阅读 · 0 评论 -
Linux基础命令
前言:Linux下没有磁盘划分,所有的东西都统称为文件(目录文件、普通文件)颜色区分文件:白色:普通文件红色:压缩文件蓝色:目录文件绿色:可执行命令黑底黄字:字符设备文件----------------------------------------快捷键---------------------------------Tab 自动补齐(输入的前缀唯一时自动补齐,不唯一时敲两下会显示出所有的当前前缀的文件)Ctrl + P 往前 Ctrl + N 往下Ctrl + B 往左 C原创 2021-04-01 22:09:43 · 117 阅读 · 0 评论 -
MySQL数据库基础知识--------MySQL必知必会内容整合
例:首先创建的数据库如下,包括:student、sc、teacher、course等表格use 0205DataBase; //使用0205DataBase数据库//模糊查询select *from student where sage like ‘1990%’; // %表示0个或多个字符select *from student where sage like ‘_990%’; // _表示1个字符#聚合函数select *from sc;select max(score) from s原创 2021-03-29 21:28:58 · 225 阅读 · 0 评论 -
计算机网络----------客户端代码实现(TCP/IP)
如果想了解服务器相关代码信息,请点击此连接客户端上一章我们讲了服务强相关代码实现,这次我们看一下客户端的代码实现,客户端代码和服务器差不多,这里我们把客户端比作是客人1.客人想去饭店吃饭,要选择吃什么(加载库:WSAStartUp())2.选择好吃什么后,饭店要知道是谁来的,(创建套接字:socket())3.客人进饭店后,坐下用餐(与服务器连接:connect())4.客人点餐(发送数据:send())5.客人等待餐厅回复(接收数据:recv())6.吃完饭去别处浪(关闭套接字:close原创 2021-03-28 09:46:26 · 295 阅读 · 0 评论 -
计算机网络-------------服务器代码实现(TCP/IP协议)
服务器我们把服务器比作是餐厅,那么我们要开一个餐厅,应该要做如下几步:1.选择要开什么店(火锅店、KFC、烧烤…),(加载库:WSAStartUp())2.地方找好了,那么我们就需要找个店长,帮我们看店(创建套接字:socket())3.店长找好了,接下来我们需要让这个店长在店里工作,(绑定:bind())4…一切准备工作完成之后,我们就需要接待客人了,观察是否来客人了(监听:listen())5.来客人时,我们需要接待客人(接收连接:accept())6.安排客人坐下后,我们就需要让客人点餐原创 2021-03-28 09:28:33 · 504 阅读 · 0 评论 -
指针与数组-----------指针类型定义
前言:对于指针:定义指针时,要明确指针的类型和指针指向的类型。指针的类型:直接去掉变量名,剩下的就是指针的类型。指针指向的类型:去掉变量名后,在去掉一个 ,对于数组:同理,定义一个指针指向一个数组时,首先应该明确数组类型及数组元素的类型。数组的类型:直接去掉数组名,剩下的就是数组的类型数组元素的类型:去掉数组名后,再去掉一个方括号[ ],剩下的就是数组元素的类型。*例:int arr[2][3][5];定义指针指向该数组,该如何定义对于多维数组而言,其本质就是数组的元素也是数组(俄罗斯套娃儿原创 2021-03-25 19:12:25 · 315 阅读 · 0 评论 -
运算符优先级表
原创 2021-03-09 22:04:06 · 257 阅读 · 0 评论 -
C语言指针浅析(二)(指针与数组)
一、指针和数组指针提供一种以符号形式使用地址的方法。因为计算机的硬件指令非常依赖地址,指针在某种程度上把程序员想要传达的指令以更接近机器的方式表达。因此,使用指针会使程序更有效率。尤其是,指针能够有效地处理数组。(阅读本博客需要有一定的数组知识)我们知道,数组名代表数组首元素的地址,即如果我们定义一个数组:int arr[10];//定义一个有10个元素的整形数组由于数组名代表数组首元素的地址,那么就有:arr==&arr[0];注意:两者都是常量,在程序运行的过程中,值不会改变,常量只原创 2021-03-08 11:33:03 · 257 阅读 · 0 评论 -
C语言指针浅析(一)
目录1.什么是指针2.指针的作用3.什么时候选择使用指针4.指针数组5.指针函数指针通过大家学习C语言,我们都可以知道指针其实是用来存储地址的,如:int a=5;int *p=&a;原创 2021-02-26 20:20:26 · 97 阅读 · 0 评论