04 2020 档案

摘要:有时对指针长度总是弄混淆,今天试验了把,总算有个明确的结论了. 指针就是地址,它的长度取决于编译程序的编译器,如果是32位,则指针长度为4字节.若是64位,则是8字节. #include<stdio.h> int main() { int i = 0; int *pi = &i; char c = 阅读全文
posted @ 2020-04-30 14:08 心媛意码 阅读(169) 评论(0) 推荐(0) 编辑
摘要:IP层: 包数据 链路层: 帧数据 以太网协议:电信号分组协议. 每个网卡有一个独一无二的MAC地址. 以太网是通过广播的方式去发送数据包. 物理连接:电信号. 每台电脑有MAC地址和IP地址,MAC地址只和生产厂商以及流水号有关,因此不能够看出电脑之间是否在同一个子网中. 因此需要有个新的机制来区 阅读全文
posted @ 2020-04-27 23:09 心媛意码 阅读(169) 评论(0) 推荐(0) 编辑
摘要:1.使用gcc时,需要使用gcc -g选项 2.如果想要把生成的可执行文件的调试信息去掉,可以使用strip命令. 3.调试程序时,最好把编译器的优化给关掉 gdb调试程序的三种方式: 1.gdb filename 2.gdb attach pid # 分离可以用detach 3.gdb filen 阅读全文
posted @ 2020-04-27 21:30 心媛意码 阅读(209) 评论(0) 推荐(0) 编辑
摘要:1.VS条件断点中输入的条件只能是非常简单的,对于复杂的可能无法判断.这个时候选择在循环里添加判断的代码来达到条件中断的效果.nice~ 阅读全文
posted @ 2020-04-27 13:14 心媛意码 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-04-27 09:17 心媛意码 阅读(97) 评论(0) 推荐(0) 编辑
摘要:一.什么是Redis Redis是一个内存中的数据结构存储系统,可以用作数据库,缓存和消息中间件(代理). 二.为什么要使用Redis 因为它非常适合一些场景: 1.比如用作缓存,和Memcached相比,两者的相当,但Redis不仅支持简单的K/V类型,还提供list,set,hash等数据结构. 阅读全文
posted @ 2020-04-26 22:19 心媛意码 阅读(166) 评论(0) 推荐(0) 编辑
摘要:大多数场景下都是IO密集型. 解释 场景 如何优化 CPU使用率 CPU密集型 又称计算密集型,而任务不太需要访问I/O设备. 计算圆周率、对视频进行高清解码 增加CPU数目;最好用C语言编写,来提高代码效率 高 IO密集 CPU大部分时间在等I/O(硬盘/内存)的读写操作. 涉及到网络、磁盘IO的 阅读全文
posted @ 2020-04-26 20:42 心媛意码 阅读(439) 评论(0) 推荐(0) 编辑
摘要:MySQL的逻辑结构 客户端+服务器+存储引擎 存储引擎 查看存储引擎: show engines.我的电脑里默认的是InnoDB; InnoDB和MyISAM索引采用的是B+树, MEMORY采用的是Hash索引. MySql中最常用的的存储引擎是InnoDB和MyISAM. 前者在磁盘中会落2个 阅读全文
posted @ 2020-04-26 20:07 心媛意码 阅读(674) 评论(0) 推荐(0) 编辑
摘要:struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; socklen_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; s 阅读全文
posted @ 2020-04-26 11:23 心媛意码 阅读(289) 评论(0) 推荐(0) 编辑
摘要:不仅定义了整数常量集,还把他们聚集成组。enum open_mode{output,input,append}; 枚举成员值可以不唯一。比如下面的point2w和point3d的值都是3.enum Points{point2d = 2, point2w,point3d = 3, point4w};不 阅读全文
posted @ 2020-04-25 10:06 心媛意码 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1.极限法 今天看到hash表,说要让hash表上的链表分布的均匀才是好的hash函数.当时就在想为啥要分散均匀呢? 灵光一闪,如果所有链表都在一个哈希值下的,那么数据查找起来不就又回到了o(n)了吗?那使用hash表的意义就不存在了.因为hash表在没有冲突时的时间复杂度是o(1). 2.多去类比 阅读全文
posted @ 2020-04-24 17:20 心媛意码 阅读(178) 评论(0) 推荐(0) 编辑
摘要:尽管自己的英语水平还不错,但是自己处于懒惰的原因,在解决实际问题时不愿意采用英文搜索引擎,不爱看英文资料.后来看皓哥的文章,认识到英文资料对于成长的重要性.一方面你可以紧跟前沿的技术,另一方面也可以提升自己的信心,把自己长处发挥出来. 阅读全文
posted @ 2020-04-24 16:34 心媛意码 阅读(162) 评论(0) 推荐(0) 编辑
摘要:成长型思维: 相信能力可以通过训练得以提升->积极应对错误,大脑高速运转,从中学习 我不是做不到,只是还没做到;把努力和困难看做进步. 我正在解决的路上,而非我不够聪明. 僵固性思维: 不懂得享受学习的过程,只盯眼前的成与败. 阅读全文
posted @ 2020-04-24 13:30 心媛意码 阅读(244) 评论(0) 推荐(0) 编辑
摘要:#include "stdio.h" #include "assert.h" int main() { char buff[32]; int nPid = getpid(); snprintf(buff, 32, "%d", nPid); //参数1:要被写入的字符串 参数2:写入的大小,防止写入大 阅读全文
posted @ 2020-04-23 23:57 心媛意码 阅读(491) 评论(1) 推荐(0) 编辑
摘要://一些和vector,list类似的操作就没有总结#include <set> #include <list> #include <iostream> using namespace std; void count_set(const set<int> &set1, const set<int> 阅读全文
posted @ 2020-04-23 13:35 心媛意码 阅读(213) 评论(0) 推荐(0) 编辑
摘要:感受: 每次安装mysql都要遇到很多问题,之前在windows上是这样让人抓狂的MySQL安装-8.0.12版本,昨天在linux上也遇到了问题,还是乖乖地把一些坑记录下来,方便以后自己去查看. 安装过程: 当时安装的参考是这个https://blog.csdn.net/baidu_3287229 阅读全文
posted @ 2020-04-23 10:37 心媛意码 阅读(168) 评论(0) 推荐(0) 编辑
摘要:这个流程图给我的启示: 1.某个步骤需要细分的话,可以引出一条线展开阐述(比如左边的步骤3) 2.同样的需要解释的话,也可以用类似的方式. 阅读全文
posted @ 2020-04-22 14:44 心媛意码 阅读(171) 评论(0) 推荐(0) 编辑
摘要:windows下是区分线程和进程的,进程拥有进程描述符,描述地址空间,打开的文件等共享的资源,还有指向线程的指针,而线程没有进程描述符,只是拥有一些少量的私有数据. linux下不区分线程和进程,都会分配一个task_struct,只不过在创建线程时会传递一些参数来指明所共享的资源. 参考文章:ht 阅读全文
posted @ 2020-04-21 13:21 心媛意码 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:一.同步和互斥机制 信号量 互斥锁 同步:指多个任务按照约定的先后次序相互配合来完成一件事情. 比如读线程等待写线程写完之后再去读. 二.信号量-P/V操作 P(s)含义: if(信号量>0) { 申请资源的任务运行; 信号量--; } else {申请资源的任务阻塞} V(S)含义: 信号量++; 阅读全文
posted @ 2020-04-20 22:37 心媛意码 阅读(1445) 评论(1) 推荐(0) 编辑
摘要:一.概述 linux中不区分进程和线程,都认为是个任务,都是创建一个task_struct.如何区分?线程是共享相同地址空间,而进程是独占地址空间. 多线程共享同一进程的地址空间 优点: 通信方便,可以通过全局变量. 缺点: 访问共享数据时需要考虑同步和互斥. 二.线程共享资源: 可执行的指令 静态 阅读全文
posted @ 2020-04-20 14:43 心媛意码 阅读(1962) 评论(0) 推荐(0) 编辑
摘要:比如你的计划是要看pthread的用法,并且定了时间表.那么你遇到了小的细节,比如sleep和循环执行空语句的区别. 这样是计划之外的,而且不影响当前pthread的学习,选择把它记下来,在有时间的时候再去了解它.(当自己有时间的时候,也需要对代办列表进行排序) 不是遇到一个问题,就马上解决一个问题 阅读全文
posted @ 2020-04-19 20:00 心媛意码 阅读(163) 评论(0) 推荐(0) 编辑
摘要:1.当linux和Windows中,主线程以return 0结束时,程序会在主线程运行完毕后结束.2.当linux中,主线程以pthread_exit(NULL)作为返回值,则主线程会等待子线程.#include<stdio.h> #include<unistd.h> #include<pthrea 阅读全文
posted @ 2020-04-19 11:13 心媛意码 阅读(1586) 评论(0) 推荐(0) 编辑
摘要:一.最小单位方面 进程是资源分配和管理的最小单元(为什么不是线程呢?因为线程自身所带的资源是不全的,还要用进程中资源) 线程是程序执行的最小单元. 二.切换成本 进程在创建时,系统需要给它分配独立的地址空间,需要用数据表来记录它的代码段,数据段以及堆栈段.当进行线程切换时,成本比较高,需要刷新cac 阅读全文
posted @ 2020-04-18 18:45 心媛意码 阅读(166) 评论(0) 推荐(0) 编辑
摘要:搜索实际上是一个很容易陷进去的过程.可能原来想去搜索A,发现没有找到A的相关信息,然后脑子里突然想要搜索B,找到了感兴趣的B的信息,最后就沉浸在B的世界里.忘记了当初搜索的目的. 阅读全文
posted @ 2020-04-18 10:10 心媛意码 阅读(154) 评论(0) 推荐(0) 编辑
摘要:一.背景 今天看到一篇文章(https://www.xuebuyuan.com/1691810.html),讲到主线程等待子线程执行完毕,如何判断的问题.作者一开始采用的是简单的Sleep操作,但这种操作不能够保证正确而且效率还比较低. 于是作者自己设计了判断子线程结束的方法,我也就实践了这个方法. 阅读全文
posted @ 2020-04-17 18:03 心媛意码 阅读(287) 评论(0) 推荐(0) 编辑
摘要:使用格式: [infile] -o [outfile] [infile] 可以是源文件, 目标文件或者汇编文件;[outfile]可以是目标文件,可执行文件,预处理文件 其中[infile]和[outfile]可以是一个文件,也可以是一组文件. 如果不使用 -o 选项,那么将采用默认的输出文件 1. 阅读全文
posted @ 2020-04-17 11:37 心媛意码 阅读(478) 评论(0) 推荐(0) 编辑
摘要:-c 只编译不链接,仅生成目标文件(.o) 可以同时编译多个文件 如果不加-c,则会进行链接操作. 例子: 定义两个源文件fun1.c和main.c //fun1.c #include"stdio.h" void fun1() { printf("this is fun1\n"); } //main 阅读全文
posted @ 2020-04-17 10:39 心媛意码 阅读(801) 评论(0) 推荐(0) 编辑
摘要:一.他山之石 1.安装CentOS7教程:https://blog.csdn.net/babyxue/article/details/80970526(我选择无界面的,用最小安装就可以) 2.用xshell连接CentOS教程:https://www.cnblogs.com/shireenlee4t 阅读全文
posted @ 2020-04-16 15:02 心媛意码 阅读(206) 评论(0) 推荐(0) 编辑
摘要:一.背景 今天看了一篇有关volatile在多线程中使用的博客(自己对该博客的总结:https://i-beta.cnblogs.com/posts/edit;postId=11388620),里面的例子没有详细地进行代码实现.自己想要验证下这个问题,同时练习下多线程编程的招式,去专门实现了一下.发 阅读全文
posted @ 2020-04-15 22:15 心媛意码 阅读(409) 评论(0) 推荐(0) 编辑
摘要:让当前线程休眠,把cpu机会给到别的线程,等到休眠结束后,进入就绪状态再去和别的线程竞争CPU. 阅读全文
posted @ 2020-04-15 14:27 心媛意码 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一.如果不加锁,会怎么样? 可能会发生数据竞争,造成数据错乱. 例子: 本来想要的结果n=0,但是执行发现n的值不为0,而且有多种取值.究其原因,是因为多个线程之间会发生数据竞争,导致CPU线程调度时出现问题,不能够保证线程内执行代码的原子操作.我发现string str = "hello";这一句 阅读全文
posted @ 2020-04-15 10:57 心媛意码 阅读(2781) 评论(0) 推荐(0) 编辑
摘要:#include <list>#include <iostream>using namespace std; //重载<<操作符. 发现重载<<时,第一个参数要为ostream类型,具体原因还没有了解. ostream & operator<<(ostream& ostr, const list<i 阅读全文
posted @ 2020-04-14 22:07 心媛意码 阅读(151) 评论(0) 推荐(0) 编辑
摘要:一.总结 (1)子类对象中既包含父类中继承来的变量,还包括自身所特有的.当把子类对象去赋值给父类对象时,把两者共有的部分进行了赋值.(有篇文章反映了两者的内存关系:https://www.cnblogs.com/taiyonghai/p/6515979.html) (2)反之,父类对象赋值给子类对象 阅读全文
posted @ 2020-04-14 16:34 心媛意码 阅读(4974) 评论(0) 推荐(0) 编辑
摘要:1.作者文章中讲的轻文档和我平时用的工作日志比较类似,把一些开发中需要考虑的东西罗列出来.不过感觉最后用专题文档去记录(比如XX开发轻文档),因为我发现日志经常记得东西比较杂. 记录哪些东西呢? (1)准备信息:一些账号,密码信息之类的,比如远程桌面或者测试时通常用的ip,账户,密码. (2)开发中 阅读全文
posted @ 2020-04-14 11:15 心媛意码 阅读(129) 评论(0) 推荐(0) 编辑
摘要:四种方式: 临界区 互斥量 信号量 事件 特点 操作原语 MFC下的操作 临界区 虽然临界区同步速度很快,但却只能用来同步本进程内的线程 EnterCriticalSection()(定义在WinBase.h中)LeaveCriticalSection() CCriticalSection类Lock 阅读全文
posted @ 2020-04-13 22:36 心媛意码 阅读(354) 评论(0) 推荐(0) 编辑
摘要:一.区别介绍 静态创建对象指的是在栈上创建对象,比如A a;它会在对象的作用域结束后自动销毁. 动态创建对象指的是在堆上创建对象,然后栈上的指针指向创建的对象.比如A *pa = new A();它需要程序员手动delete掉.如果不进行delete操作,只能等到程序结束后,由OS来回收掉. 代码说 阅读全文
posted @ 2020-04-13 17:11 心媛意码 阅读(2068) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <vector> using namespace std; void print_vec(const std::vector<int>& vec) { for (auto x : vec) { std::cout << ' ' << x; } 阅读全文
posted @ 2020-04-13 11:38 心媛意码 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1.可以使用{}来达到方便的作用. 比如下面的代码,如果不用{}的话,会提示v1重复定义的问题 int sz = 100; std::cout << "using reserve: \n"; { std::vector<int, NAlloc<int>> v1; v1.reserve(sz); fo 阅读全文
posted @ 2020-04-11 11:04 心媛意码 阅读(195) 评论(0) 推荐(0) 编辑
摘要:一.真正有用的内存地址 实际上真正有用的地址是写入位置,在VS的内存窗口中去查看该位置,可以看到具体出现的问题. 二.发生访问冲突的可能原因 1.访问了0x00位置的数据 2.对内存中常量进行修改. char * pcontent = " abcdef "; //待去掉前后空格的字符串(共10字节) 阅读全文
posted @ 2020-04-10 16:34 心媛意码 阅读(3142) 评论(0) 推荐(0) 编辑
摘要:一.背景 昨天脑袋有点发蒙,在.h中定义了一个全局变量CCriticalSection g_CriticalSection;然后就报了若干个LNK2005:重复定义的链接错误(单个cpp文件单独编译时不会发现问题,而链接时把把信息汇总,就会发现问题咯).原因是不应该在头文件中定义全局变量. 正确定义 阅读全文
posted @ 2020-04-10 12:16 心媛意码 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-04-09 22:07 心媛意码 阅读(157) 评论(0) 推荐(0) 编辑
摘要:--查询10号部门的所有经理,20部门的所有销售员. SELECT * FROM emp WHERE (deptno = 10 AND job = '经理') OR (deptno = 20 AND job = '销售员') --既不是经理也不是销售员 job NOT IN ('经理', '销售员' 阅读全文
posted @ 2020-04-09 16:30 心媛意码 阅读(242) 评论(0) 推荐(0) 编辑
摘要:一.背景 之前知道对象结束生命时,会自动调用析构函数.如果类中存在动态数组时,会在析构函数中会对动态数组对应的指针进行delete操作.不过一直对动态对象的delete操作和析构函数之间的关系没有太多关注.直到最近在看delete这块知识时,发现了这样的表述 二.举例 下面的代码中,在main函数的 阅读全文
posted @ 2020-04-08 22:15 心媛意码 阅读(3755) 评论(0) 推荐(0) 编辑
摘要:SQL中使用sum的方式是这样的:sum(col_name),如果某列不符合sum的条件(比如某列中含有NULL元素,或者不是数值类型),那么会返回NULL. 有的时候不希望sum的结果为NULL,可以做如下的处理: SELECT COALESCE(sum(col_name), 0) FROM Ta 阅读全文
posted @ 2020-04-07 19:48 心媛意码 阅读(827) 评论(0) 推荐(0) 编辑
摘要:一.简单认识 MFC中将线程分为用户界面线程和工作线程,两者最大的区别是前者是和界面相关联的,而后者是进行后台的一些操作. 二.如何创建 MFC中的线程大多继承自CWinThread,而相关联的界面可以继承自CFrameWnd,也可以继承自对话框之类的(感觉只要是界面类,就可以吧). 它的创建过程大 阅读全文
posted @ 2020-04-02 14:50 心媛意码 阅读(1167) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-04-01 17:26 心媛意码 阅读(184) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示