自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 在IOCP框架下实现基于TCP通讯的高并发聊天功能

/* 使用技术: 1. IOCP框架 2. 多线程及其同步 3. 线程池 4. 回调函数的优雅实现 / / 实现功能: 1. 客户端启动后自动连接服务器,断开后自动重连机制 2. 客户端与客户端通讯都需要通过服务器中转 3. 客户端之间聊天模式类似于钉钉,会提示消息发送成功以及消息已送达功能 4....

2018-11-14 19:24:01

阅读数 316

评论数 0

原创 C++自定义线程池以及通过线程池处理业务展示

本实例通过3部分进行展示: 将线程池定义成一个类,用来管理线程,该线程池设计成单例模式 设计了一个工作类,即工作线程类,用于处理业务(使用基于事件的同步方式和原子操作同步方式) 设计了一个任务分发管理类,用于模拟实际业务使用线程池实现处理业务 自定义事件类:.h #pragma once #i...

2018-11-08 19:36:56

阅读数 110

评论数 0

原创 select模型的测试结果

2018-10-30 17:37:16

阅读数 67

评论数 0

原创 select模型运用-客户端

// ClientBySelect_Test1.cpp : 定义控制台应用程序的入口点。 // #include “stdafx.h” #include #include #include <stdio.h> #include &lt...

2018-10-29 18:20:29

阅读数 303

评论数 0

原创 使用Select实现C/S通讯之服务端

// ServerBySelect_Test1.cpp : 定义控制台应用程序的入口点。 // #include “stdafx.h” #include <WinSock2.h> #include #include &a...

2018-10-29 18:19:06

阅读数 68

评论数 0

原创 AVL树的创建、查找、删除节点、增加节点和释放内存的实现

include “stdafx.h” include < iostream > include < stdlib.h > include < stdio.h&gt...

2018-08-22 13:08:42

阅读数 1487

评论数 0

原创 二叉树的前序、中序、后序遍历实现

// 中序遍历.cpp : 定义控制台应用程序的入口点。 // include “stdafx.h” include < iostream> include < stdlib.h> inclu...

2018-08-19 21:38:20

阅读数 40

评论数 0

原创 二叉搜索树(Binary Search Tree)

二叉搜索树(Binary Search Tree),也称为“二叉查找树”,是指一颗空树或者具有下列性质的二叉树: 1. 任意节点的左子树不空,则左子树上所有节点的值“小于”它的跟节点的值。 2. 任意节点的右子树不空,则右子树上所有节点的值“大于”它的跟节点的值。 3. 任...

2018-08-13 14:38:12

阅读数 96

评论数 0

原创 Qt设置鼠标转圈状态以及恢复常规状态

QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QApplication::restoreOverrideCursor();

2020-01-16 11:04:23

阅读数 17

评论数 0

原创 git如何查看代码量

查看git上的个人代码量: git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf &q...

2019-12-26 16:43:33

阅读数 19

评论数 0

原创 学习操作系统-清华大学经典课程课程

https://github.com/chyyuu/os_course_info 视频: bilibili或西瓜视频搜索: “操作系统 陈渝”

2019-12-16 13:42:06

阅读数 40

评论数 0

原创 linux和windows实现使用虚拟内存的解决方法

抛出windows下使用虚拟内存的方式: mmap是posix标准下的一个函数,它将文件或设备的访问映射到内存中。下面的代码摘自ngx_rtmp_mp4_module.c,nginx的rtmp模块用它来从服务的录制的mp4文件中读取,以rtmp媒体流的形式分发给播放端。这样做可能是由于mp4的a...

2019-12-03 19:28:29

阅读数 10

评论数 0

原创 kafka高效的原理

参加知乎文章: https://zhuanlan.zhihu.com/p/78335525

2019-12-03 18:55:53

阅读数 10

评论数 0

原创 IT各种场景架构的演进

参考博客: https://www.cnblogs.com/wintersun/p/8722240.html

2019-12-02 14:22:16

阅读数 8

评论数 0

原创 Qt的Line使用

当使用Qt设计师拖动“Horizontal Line”或“Vertical Line”来作为widget的分割线时,如果要给分割线设置颜色并让其生效,必须设置“frameShadow”属性为“Plain”,同时使用样式表设置该分割线的颜色为指定颜色。修改如下图所示: ...

2019-11-25 16:41:33

阅读数 13

评论数 0

原创 QSettings使用ini动态保存数组信息

ini文件中存储的内容为: (1)记录动态数组的元素个数:openedPatientCount (2)每个元素为包含两个数据:patientID和folderID const QString const_configFileName = "C:\\Users\\Public\\Docum...

2019-11-22 14:00:51

阅读数 23

评论数 0

转载 蛮不错的读书心得- 读《程序员向架构师转型必备》

文档地址: https://blog.csdn.net/jinxinliu1/article/details/69978105

2019-11-13 20:04:07

阅读数 6

评论数 0

原创 分布式和集群

集群可以理解为分布式的子集。 不管是分布式还是集群,有以下几点需要注意: 需要通过网络进行节点间的通讯。通讯一般分为两种方式: (1) 消息传递方式 (2)远过程调用方式即RPC 高性能:指可以充分利用系统的所提供的能力。 高可用:即相当于一个节点宕机,有其他节点可以提供相同的服务,给予外界的感...

2019-11-11 16:41:53

阅读数 7

评论数 0

原创 Qt获取文件夹下所有文件最后修改时间

//获取文件夹里所有文件的最终修改时间 QDateTime GetLastmodifiedTime(QString catalog) { QDir dir(catalog); //该目录下的具体文件的时间 QFileInfoList fileList = dir.entry...

2019-11-09 11:43:14

阅读数 17

评论数 0

原创 Qt工程提示:QtMsBuild\qtrcc.targets(74,5): error MSB3073: 命令“"\bin\rcc.exe" --list

解决方式:

2019-11-06 11:58:37

阅读数 379

评论数 0

转载 #、##、__VA_ARGS__和##__VA_ARGS__的作用

参考文章:https://blog.csdn.net/q2519008/article/details/80934815 一、#用来把参数转换成字符串 例子一: #define P(A) printf("%s:%d\n",#A,A); int main(int argc, ch...

2019-10-31 09:45:52

阅读数 7

评论数 0

转载 windows下配置RabbitMQ集群

Windows环境下 RabbitMQ集群配置 一、在集群机器上安装erlang环境、安装rabbitmq; 二、 假设,192.168.10.111的节点名称为 rabbit@H1-PC,192.168.10.112的节点名称为 rabbit@H2-PC 1.分别在两台机器的rabbitmq数据...

2019-10-14 17:51:27

阅读数 6

评论数 0

原创 计算机网络OSI七层模型的讲解

发现一片博客讲的很不错,向大家推荐下: https://blog.csdn.net/warrior_0319/article/details/80453940

2019-10-14 10:54:36

阅读数 7

评论数 0

原创 http和tcp/ip协议的描述

参考博客:https://juejin.im/post/5d75c116f265da03d9255dd1

2019-10-09 11:00:44

阅读数 5

评论数 0

原创 windows下部署RabbitMQ时,跨机无法通讯的问题

在部署RabbitMQ时,发现跨机无法通讯,系统直接报错。为了解决此问题,本人将RabbitMQ的相关exe全部加入到防火墙允许应用中,此时打开本机防火墙,发现其它机器还是无法连接;当关闭防火墙时,发现本机可以被其它机器连接。 于是,初步确定是防火墙问题引起的。最后,确定为:在windows下需要...

2019-10-08 16:21:32

阅读数 15

评论数 0

原创 git对tag进行的操作

使用git tag命令,可以显示所有的tag: 拉取tag分支上的代码:拉取远端的tag分支的代码,不能直接使用git checkout xx,因为我们远端的branch上根本没有该分支,如下图所示: 此时,需要我们“必须”先在本地创建一个新的分支来拉取远端的tag分支的代码,如下所示: ...

2019-09-25 17:11:47

阅读数 10

评论数 0

原创 Qt为类的成员变量快速增加的get、set函数的用法

#include <functional> #include <QMutex> #include <QMutexLocker> /*! concatenating multiple args into one*/ #define CONCATE(...) __...

2019-09-16 11:56:15

阅读数 89

评论数 0

原创 简单记录自己的“架构”搭建经验

今年年初到现在已经有7个月了,我负责开发了两个独立项目的架构搭建以及核心的研发工作。以下所说的项目都是基于Qt开发。Qt主要是显示界面,核心的后端采用原生C++实现。 简单说说两个项目吧。 第一个是一个QA项目: 原理比较简单。就是给一个输入,经过检验后给个输出。项目的要求是:每一种检查都是...

2019-09-05 17:51:15

阅读数 15

评论数 0

原创 隐藏QCheckBox的复选框

正常情况下,复选框显示: 增加样式表: ui.checkBox->setStyleSheet("#checkBox::indicator{width: 0px;}"); //影藏QCheckBox的复选框 显示结果如下:

2019-08-19 14:59:51

阅读数 211

评论数 0

原创 单处理器调度

调度类型: 关于调度类型在进程状态中的的角色和阶段如下图所示: 长程调度: 长程调度程序决定哪一个程序可以进入到系统中处理,因此,它控制系统并发度。一旦允许进入,一个作业或用户程序就成为一个进程,并被添加到供短程调度程序使用的队列中等待。在某些系统中,一个新创建的进程开始处于被换出状...

2019-08-18 16:41:49

阅读数 15

评论数 0

原创 虚拟内存

虚拟内存术语: 简单分段或简单分页技术都要求进程运行时,该进程的所有内存块(页或段,取决的是分页还是分段)都必须全部加载到内存中.为了解进程运行时,可以不用提前加载全部的该进程的内存块,提出了以下这种策略:假设需要把一个新竭诚放入内存时,操作系统仅读取包含程序开始处的一个或几个块.进程执行中...

2019-08-17 17:55:36

阅读数 15

评论数 0

原创 并发——死锁与饥饿

不存在一个可以解决所有类型死锁的有效策略!!! 操作系统中死锁检测、预防和避免方法的小结 死锁的条件: 死锁有3个必要条件: a. 互斥。一次只有一个进程可以使用一个资源。其他进程不能访问已分配给其他进程的资源。 b. 占有且等待。当一个进程等待其他进程时,继续占有已分配的资源。 c. ...

2019-08-17 09:25:44

阅读数 19

评论数 0

原创 操作系统-内存管理

1.内存管理术语: a.页:一个固定长度的数据块,存储在二级存储器中(如磁盘)。数据也可以临时复制入内存中的页框中。 b.段:一个变长的内存块,存储在二级存储器中。整个段可以临时复制到内存的一个可用区域内(分段存储),或者可以将一个段分为许多页,将每页单独复制到内存中(分段和分页相结合,即段页式存...

2019-08-13 11:03:58

阅读数 17

评论数 0

原创 C++获取目录下的所需文件

bool ParseDose::GetImageFileName(std::string catalog, std::vector<std::string>& lstFileName) { intptr_t hFile = 0; struct _finddata...

2019-08-01 12:02:20

阅读数 13

评论数 0

转载 CMake使用

转自 https://www.cnblogs.com/hansjorn/p/4886368.html CMakeList相关 cmake使用示例与整理总结 http://blog.csdn.net/wzzfeitian/article/details/40963457/ 对应的demo:https...

2019-07-31 18:27:45

阅读数 15

评论数 0

原创 记——VS运行路径的问题

问题: VS工程的“工作目录”使用默认的目录,VS生成的exe运行时需要加载一个配置文件,我们将配置文件放在我们VS设置的运行目录下。当使用VS运行工程时,提示找不到该配置文件;当直接运行生成后的exe文件时,加载配置文件正常! 原因: 当使用VS运行工程时,其运行目录为.vcxproj文件所在的...

2019-07-30 17:51:08

阅读数 82

评论数 0

原创 和并发相关的术语和技术的介绍

原子操作: 一个或多个指令的序列,对外是不可分的;即任何其它进程都无法看到其中间状态或中断此操作. 临界区: 是一段代码,在这段代码中进程将访问共享资源,当另一个进程已经在这段代码中运行时,这个进程就不能在这段代码中执行. 死锁: 两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而...

2019-07-27 11:31:28

阅读数 52

评论数 0

转载 Qt获取运行时所需的库(或者叫Qt打包)

Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很...

2019-07-25 10:40:34

阅读数 60

评论数 0

转载 QSqlDatabase: QSQLITE driver not loaded

错误: QSqlDatabase: QSQLITE driver not loaded QSqlDatabase: available drivers: 原因: 没有找到插件qsqlite 解决: 将qsqlite4.dll复制到应用程序所在目录下的sqldrivers目录中。 其他: 查看支持的...

2019-07-25 10:35:25

阅读数 150

评论数 0

原创 Qt解决中文字符乱码问题

在所有的头文件加一条编译指令: #pragma execution_character_set(“utf-8”) //统一使用utf-8编码

2019-07-22 10:40:17

阅读数 58

评论数 0

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