自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (3)
  • 收藏
  • 关注

原创 Boost::timer库详解

详细介绍了Boost中timer库中三个组件的使用方法和注意问题。

2020-04-29 17:25:20 2458

原创 浅谈TCP拥塞控制:慢启动和拥塞避免、快速重传和快速恢复

文章对TCP的拥塞控制算法,进行了浅显的描述,便于人们理解。

2020-04-29 14:25:28 11995 5

原创 臭名昭著的三次握手和四次挥手

三次握手和四次挥手几乎是面试必问的问题,为了能更好的记忆,我尽量以最简洁的语言陈述。三次握手为什么是三次?四次挥手为什么是四次?...

2020-04-28 17:11:26 3438 11

原创 TCP服务端和客户端编程流程+代码详细解析(linux:c语言)

TCP服务端和客户端的编程流程是网络编程的重点。以下内容包括编程步骤、代码实现、以及代码解析四个方面。目录1 编程步骤2 代码实现3 代码解析1 编程步骤tcp服务器与客户端的编程流程如下所示:左边为服务端,右边为客户端。我们常见的服务器客户端大多都是遵循这个步骤的。2 代码实现我们按照上述步骤来实现一个简易的服务端与客户端:ser.c...

2020-04-28 10:28:16 8245

原创 一文读懂TCP协议UDP协议的特点(区别)

最近复习到网络,Linux的复习也将接近尾声。在这我将改正自己做事龙头蛇尾的一贯作风。在网络编程这个模块中也会认真做好笔记。网络模块是一个面试必问的模块,这一块内容较多,但大多都是知识点,代码量就一个TCP和UDP的编程流程。从这篇文章开始,我会将网络编程的知识点一一进行总结。一下内容参考《计算机网络》(谢希仁)第五版。目录1.TCP协议的特点2.UDP协议的特点1.T...

2020-04-27 17:17:05 1408

转载 OSI七层模型和TCP/IP五层模型概念总览

1 OSI七层模型1.1 OSI的来源OSI(Open System Interconnect),即开放式系统互联网。一般叫OSI模型,是ISO(国际标准化组织)在1985年研究的网络捂脸模型。ISO为了更好的使网络应用层更为普及,推出了OSI模型,其含义就是推荐所有的公司使用这个规范来控制网络。这样所有的公司都有相同的规范,实现互联。1.2 OSI七层模型的划分OSI定义了网...

2020-04-26 17:05:47 1185

原创 无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)

1.无锁编程与有锁编程的效率无锁编程,即通过CAS原子操作去控制线程的同步。如果你还不知道什么使CAS原子操作,建议先去查看相关资料,这一方面的资料网络上有很多。CAS实现的是硬件级的互斥,在线程低并发的情况下,其性能比普通互斥锁高效,但是当线程高并发的时候,硬件级互斥引入的代价与应用层的锁竞争产生的代价同样都是很大的。这时普通锁编程其实是优于无锁编程的。硬件级原子操作使应用层的操作变...

2020-04-25 15:19:11 2426

原创 惊!线程同步居然讲的这么详细:信号量、互斥锁、条件变量、读写锁

1.为什么要进行线程的同步操作?我们以一个程序引出这个问题:如下:#include <stdio.h>#include<unistd.h>#include<stdlib.h>#include<pthread.h>#include<pthread.h>int val=0;void* thread_fun(void *...

2020-04-24 11:44:46 4004

原创 来!一文读懂什么是线程、协程和纤程!

本文主要介绍了线程、协程和纤程的概念

2020-04-22 10:32:23 2625 2

原创 惊!csdn-blink推荐红人勋章居然悄悄下线了?

前一段时间发布了一个blink,上了推荐栏目。如上图,我看了一下勋章说明,这应该满足发勋章的条件,但是却迟迟没有到位,就没再管了。今天终于想起来还有这么回事,就去咨询客服,客服说这个勋章已经下线。很遗憾,真的很想要这个勋章,很好看的一个勋章。如今CSDN已经成为我学习中不可缺少的一个平台。一个勋章而已,不是自己的问题就好。加油,我相信自己会有下一个好看的勋章。...

2020-04-21 17:26:10 457

原创 linux进程通信看这一篇就够了【管道、信号量、共享内存、消息队列】(超级详细、不骗人)

此文章详细介绍了linux进程通信的管道、信号量、共享内存、消息队列以及它们的使用方法。

2020-04-21 15:01:21 1438

原创 vs2019生成64位dll(动态链接库)并用python3.7调用

说明:windows动态链接库相当于linux下的共享库。同时,由于一般安装的python都是64位的,而生成的动态链接库是32位的,这就导致动态链接库在pyhon中调用的时候出现不匹配的问题。网上大部分的解决方法都是安装32位的python,太过麻烦,为什么不能生成64位的dll呢1.工具软件:vs2019,python3.7,pycharm语言:c++,python2.64位d...

2020-04-20 12:37:34 4918 3

原创 Linux关于进程的四道面试题||面试经常被问到||fork||printf、write的打印问题

在这里总结关于进程的四道面试题:第一道问下面程序打印几个A。#include<stdio.h>#include<stdlib.h>#include<unistd.h>int main(){ int i = 0; for(;i<2;++i) { fork(); printf("A\...

2020-04-18 14:36:33 481

原创 Linux僵死(尸)进程(详解)||概念||产生条件||解决方法(wait(waitpid)、信号、两次fork)

本文详细介绍了进程结束的处理机制、僵尸进程以及僵尸进程的四(三)种处理方法,同时涉及到孤儿进程的概念和处理机制。

2020-04-18 11:19:11 2903

转载 frok创建子进程的流程(底层实现)||fork源码剖析||(详解)||写实拷贝

前几天看了一道面试题?问道fork的复制流程是怎么的?描述写时拷贝?我想如果我简单的说是子进程复制了父进程的所有资源是不是太low了,因此搜集了一些资料,从底层详细进行分析。目录1.fork的处理流程2.fork调用流程图do_fork的实现copy_process的实现流程3.写时拷贝技术1.fork的处理流程从c语言中的fork函数开始,它在gblic库中会...

2020-04-17 17:15:47 1305

原创 剑指offer刷题————栈的压入、弹出序列

1.问题重述题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是压栈序列的弹出序列2.思路解析这道题目的思路很明确,我们就建立一个栈,然后让入栈序列先入栈一个,然后看栈顶元素是否与弹出序列的第一...

2020-04-17 10:53:14 212

原创 Linux内存的分页管理详解||物理内存||虚拟内存||联系||分页机制||工作原理

目录1.内存2.虚拟内存3.内存的分页管理1.虚拟内存地址到物理内存地址的寻址2.磁盘地址(虚拟内存空间)到物理内存地址的映射3.虚拟内存是如何工作的1.内存内存使计算机的主存储器,它为进程开辟出进程空间,让进程在其中保存数据。它的最小的存储单位一般是字节。内存会为每各字节进行编号,从0开始依次递增(线性的)。通常我们会用16进制来表示内存的地址。同时,内存地...

2020-04-16 17:33:32 1433

原创 Linux静态库||共享库的制作与使用详解(c/c++)

1.静态库的制作与使用首先静态库的制作需要用到ar命令,ar命令不了解,可以看下下面文章,对ar命令有详细的介绍:linux ar 命令详解我们来看以下静态库制作的流程:首先将.c文件生成为.o文件。用ar命令生成静态库在主函数包含函数头文件运行的时候引用静态库即可一个实例:首先,创建一个头文件lib.h,内容如下:int add(int a,int b)...

2020-04-15 12:09:14 406 1

原创 剑指offer面试题总结||所有习题||思路解析||代码实现||c/c++(已完结)

剑指offer———重建二叉树剑指offer———二维数组中的查找剑指offer————用两个栈实现队列剑指offer————替换空格剑指offer————从尾到头打印链表剑指offer————旋转数组的最小数字剑指offer刷题————斐波那契数列剑指offer刷题————二进制中1的个数剑指offer刷题———数值的整数次方剑指offer刷题———打印1到最...

2020-04-15 10:19:31 380

原创 剑指offer刷题———包含min函数的栈

1.问题重述题目:定义栈的数据结构,请在该类型中实现一个能够得到全栈最小元素的min函数,同时要求,调用min、push、pop的时间复杂度都为O(1);2.思路解析本题目要求在栈中有一个min函数能够得到全栈最小的元素,同时还要保证栈的FILO的特性,因此这个最小的元素肯定要保存在外部,要不然会破坏栈的FILO特性。所以我们可以创建两个栈来实现题目要求的数据类型,一个栈_data...

2020-04-15 10:12:12 171

原创 Linux命令系列:uname、lsof、nc、strace、ulimit

目录1.uname2.lsof3.nc4.strace5.ulimait1.unameuname命令可以显示电脑或者操作系统的相关信息。参数及含义如下所示:a或--all:显示全部的信息;-m或--machine:显示电脑类型;-n或-nodename:显示在网络上的主机名称; -r或--release:显示操作系统的发行编号;-s或--s...

2020-04-14 16:59:52 448

原创 Linux-gdb调试||多线程调试||多进程调试||详解

1.gdb调试的基本命令gdb是linux下调试程序的基本工具,调试的前提是在程序中加入调试信息,在编译时通过加上-g参数来完成。例如我们有main.c源文件:通过命令:gcc -o main main.c -g这样就在main中加入了调试信息,方可调试。调试的一般流程:加入调试信息 gdb启动: 例如gdb main 加入断点 运行程序 调试 /退出下面说...

2020-04-14 10:48:38 840

原创 ubuntu下载速度慢||亲测可用

搬砖的活,链接:https://blog.csdn.net/GorgeousChou/article/details/80788211

2020-04-13 14:02:41 907

原创 ubuntu突然连不上网||亲测可用

情况说明:以前能连上网,突然就连不上了。https://www.cnblogs.com/mtgh/archive/2019/08/31/11440136.html我参考上面这篇文章,在第一步的时候就将问题解决了。...

2020-04-13 13:28:09 501

原创 gcc和g++的区别?c和c++的区别?

1.gcc和g++的区别?很明显,gcc是用来编译c程序的,而g++是用来编译c++程序的。但是g++可以同时编译c、c++程序,这是因为g++在编译c程序的时候会调用gcc。而gcc不可以编译c++程序,分部测试,发现gcc在编译c++程序的时候在编译和链接这两步报错,而前面预编译、汇编都可以顺利通过。这是因为c和c++程序在预编译和汇编阶段都做了相同的事情。而在编译阶段:gcc...

2020-04-13 10:18:50 1065

原创 Linux预编译、编译、汇编、链接指令||为什么汇编生成的二进制文件需要链接后才能执行?

我们以.c文件为例,假如我们有文件为main.c它的各个指令为:预编译:gcc -E mian.c -o main.i 编译:gcc -Smain.i -o main.s 汇编:gcc -c main.s -o main.o 链接:gcc -o main main.o链接生成的main就是可执行程序。想要了解这四部的具体过程可以参考我的另一篇博文:https://blog...

2020-04-13 09:31:44 1141 1

原创 Linux命令系列:netstat、tcpdump、ipcs、ipcrm、top、vmstat、uptime、iostat、free

有些命令我不会进行整理,只是给出一些连接,因为这些人写的很全面,直接参阅即可。1.netstatnetstat命令可以显示所有的网络连接情况(运行端口、路由表、套接字连接等)使用方式为:netstat [选项]具体选项如下(可以通过netstat -h查看):-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅...

2020-04-12 17:02:03 786

原创 c++11新特性详解||知识的搬运者

这一块的内容,在cnblogs上有一位大佬总结的非常详细,在这我只做一位知识的搬运者:https://www.cnblogs.com/George1994/p/6684989.html

2020-04-11 17:04:31 119

原创 设计模式——观察者(监听者,订阅)模式||线程安全||c++详解

1.什么是观察者模式观察者模式常用于解耦事件的观察和最终的处理方式。它是一种对象行为模式,如果对象间存在着一种一对多的依赖关系,当一个对象发生改变的时候,其他依赖此对象的对象都要做出相应的改变。举个例子:大家现在对公众号都不陌生,也经常会关注公众号。那么我们关注公众号的这种模式其实就是一种观察模式,当我们关注的公众号有新内容发布的时候,就会推送给我们这些关注了此公众号的人,那么那么没有关注...

2020-04-11 16:49:24 1268

原创 究竟什么是设计模式?

在研究设计模式之前,那么如果不知道究竟是什么是设计模式岂不是让人笑掉大牙。总结:设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式简单来说就是在解决某一类问题的时候,有既定的优秀的代码框架可以来用。那么有哪些优点呢?优点:使用设计模式可以使代码的重用性提高,可以保证代码的可靠性,同时代码容易被被人理解。 合理的设计模式的应用,能够积极迎合开发过程...

2020-04-11 15:46:51 144

原创 python-pymysql连接Mysql数据库并进行简单的操作||增、删、改、查

pymysql是oython连接mysql数据库进行操作的一个库,pymysql的详细介绍如下文:https://www.cnblogs.com/wt11/p/6141225.htmlimport pymysql# 连接数据库# 应提供主机名 端口号 用户名 密码 以及数据库名connect = pymysql.Connect(host='localhost',port=3306...

2020-04-11 11:47:04 446

原创 pymysql:TypeError:百分d format:a number is required, not str||已解决

我的情况是这样:num = cursor.execute("insert into info (name,age) values(%s,%d)",('lisi',20))就是上面这条语句,因为表里面的age为int,所以应该用%d,但是出现这样的错误。这个时候我们将所有的格式都改为%s,并为20加引号:如下:num = cursor.execute("insert into...

2020-04-11 11:39:41 3994

原创 python 简单UDP实例||服务器、客户端||收发||聊天实例

如我们所知,UDP是一种无连接的,不可靠的数据报服务,首先看一下UDP的编程流程:上述左边是服务器的流程,右边是客户端的流程。使用上述流程实现简单的聊天小程序。聊天程序实例服务器from socket import *ADDR = ('127.0.0.1',8888)server = socket(AF_INET,SOCK_DGRAM)server.bind(ADDR)...

2020-04-11 09:40:03 378

原创 python-UDP服务器居然收到自己的消息

问题已经很明确,就是服务器出现了自发自收的内容。首先服务器的代码如下:from socket import *ADDR = ('127.0.0.1',8888)server = socket(AF_INET,SOCK_DGRAM)server.bind(ADDR)print("服务器已经启动")setdefaulttimeout(20)while True: data,c...

2020-04-11 09:27:03 635

原创 设计模式——迭代器模式||c++详解

目录1.什么是迭代器模式?2.迭代器模式的设计3.迭代器模式的实现1.什么是迭代器模式?迭代器模式就是提供一种方法,去访问一个聚合对象内的各个元素,同时又不暴露该对象的内部结构。相当于c++11提供的foreach语句。因此迭代器模式也是非常简单的,只是给对象加了遍历的功能而已。如果说我们将一个数组当作一个对象,那么带有能遍历数组功能的方法的类其实就是符合迭代器模式的...

2020-04-10 11:37:42 268

原创 C/C++静态变量盲区(鲜有人知道)||静态变量的地址为什么能保持不变

如下程序,是一个单例模式(我确定),这时我问自己,那么是怎么保证每次GetInstance返回的地址都是一样的呢。程序如下:# include<iostream>using namespace std;class Single{public: static Single* GetInstance() { static Single single; return...

2020-04-07 17:24:27 788

原创 设计模式——单例模式(饿汉、懒汉、线程安全)||c++详解

1.什么是单例模式单例模式就是有这样一个类,无论你通过何种方式得到多少个该类的对象,结果是,所有的对象都指向该类的唯一一个对象。这就说明,单例模式只能实例化一个对象。我们怎么能做到这一点呢?有这样一个解决方案:在类中定义自己的唯一一个实例对象。 将构造函数私有化,使类不能在外部实例化。 通过一个静态的接口返回唯一的一个对象。人们根据得到单例模式中唯一一个对象的时机不同,形象的将单...

2020-04-07 16:17:04 355

原创 手把手教你用VS2019搭建Linux开发环境

因为linux的界面还是不如Windows友好,但是linux系统下可以看见一些更底层的东西。今天,我来教你用vs2019搭建linux项目。第一步:打开vs的安装器,看下面标注的组件是否安装。第二步:开启linux ssh服务。ubuntu用命令:sudo service ssh startredHat用:chkconfig sshd onreboot...

2020-04-07 13:11:33 20177 11

原创 让C# TreeView控件默认选择第一个节点或选择一个节点

在开发的过程中,需要默认选中TreeView的第一个节点。之前的效果如图:我们发现TreeView的第一个节点并没有选中,接下来我们更改TreeView的TabIndex的值。假如你的树中有三层节点,那么TabIndex的值设置为1,2,3都会默认选中第一个节点,我的现在为4,第一个节点没有选中,我更改Tabinde的值后的效果如下:可以发现第一个节点已经选中了。...

2020-04-07 10:03:20 6478

原创 (ubuntu)linux下编译C++程序(c++11)

第一步:查看自己的gcc版本是否达到4.8要运行支持c++11的程序,首先gcc/g++编译器要达到相应的要求,首先要下载通过命令gcc -v来查看,如果没达到,请先更新想要下载和安装最新的只需要用一下命令即可:sudo apt-get install gcc g++第二部:编写程序测试我们编写一个带有c++11特性的程序test.cpp:...

2020-04-06 16:23:02 2432 1

spaceshooter.zip

unity游戏开发,spaceshooter游戏代码+程序。可以帮助你快速的熟悉unity的应用,以及C#脚本的编写。

2020-04-18

qt实现windos图片浏览器

用qt实现windows上的图片浏览器,并进行了功能改进。在原有的基础上,增加了添加照片和删除照片的功能。适合用于熟悉qt的一个非常好的例子。

2020-04-04

Maven教程.pdf

maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理 工具,使用maven对java项目进行构建、依赖管理。当前使用Maven的项目在持续增长。本文档详细介绍了Maven的下载安装以及怎么使用。

2019-10-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除