技术总结
文章平均质量分 51
ndzjx
喜欢编程
展开
-
systemd-nspawn 运行最轻量的容器
# systemd-nspawn 运行最轻量的容器## 安装- systemd-container包含所有用于启动和管理容器和虚拟机的工具;- 而debootstrap则是debian/ubuntu下用于构建一套基本的根文件系统的工具。 ``` sudo apt install debootstrap sudo apt install systemd-container ```## 创建基本的文件系统 debootstrap生成的根文件系统符合Linux...原创 2021-12-30 17:20:41 · 1378 阅读 · 0 评论 -
端口转发
linux 端口转发的方式很多种,除了防火墙(模拟路由器的功能),其他都是软件方式,在处理长连接时有问题(比如server挂了,代理还存在,就会出现连接成功,接收数据时失败。),下面详细说说防火墙的方式:其他方式参考:https://www.linuxprobe.com/linux-port-transition.htmlhttps://www.cnblogs.com/wspblog/p/4297160.html代理部署步骤:使用CentOS7.0以上的机器,用防火墙做转发,(0..原创 2021-02-18 21:43:29 · 1293 阅读 · 0 评论 -
docker 笔记
1:安装dockercurl -sSL https://get.daocloud.io/docker | sh2:启动dockersudo systemctl start docker3:启动容器docker run -it ubuntu /bin/shdocker attach /run,对于exit 和 ctrl+D 会关掉容器,docker exec 只是会从容器中出来,不会关掉容器如果不知道是attach/exec进去的?所以退出最好只用ctrl+p,ctrl+q4:导出.原创 2020-08-31 20:25:41 · 251 阅读 · 0 评论 -
15 应用程序中使用虚拟内存
原创 2018-08-28 06:01:02 · 228 阅读 · 0 评论 -
9 内核对象进行线程同步
原创 2018-08-27 15:54:01 · 88 阅读 · 0 评论 -
8 用户模式下的线程同步
原创 2018-08-27 15:53:11 · 107 阅读 · 0 评论 -
7线程调度、优先级和关联性
原创 2018-08-27 15:52:18 · 137 阅读 · 0 评论 -
6线程基础
原创 2018-08-27 15:50:30 · 143 阅读 · 0 评论 -
5作业
原创 2018-08-27 15:49:44 · 121 阅读 · 0 评论 -
4进程
原创 2018-08-27 15:48:42 · 256 阅读 · 0 评论 -
3内核对象
原创 2018-08-27 15:45:34 · 86 阅读 · 0 评论 -
1 2核心编程
核心编程原创 2018-08-27 15:43:05 · 106 阅读 · 0 评论 -
谈谈蛋疼的问题:里式替换原则:正方形是长方形吗?
最近听到有人说,根据里式替换原则,正方形不是长方形。理由如下:class Rectangle{public: void setLength(int length) { m_nLength = length;} void setWidth(int width) { m_nWidth = width; } int area() { return m_nWidth * m_n...原创 2018-05-16 19:50:01 · 5363 阅读 · 1 评论 -
10 11 12 同步设备I O与异步设备I O
原创 2018-08-27 15:55:06 · 113 阅读 · 0 评论 -
13 Windows内存体系结构
原创 2018-08-27 15:55:49 · 124 阅读 · 0 评论 -
14 探索虚拟内存
原创 2018-08-28 06:00:40 · 114 阅读 · 0 评论 -
Kafka、RabbitMQ、RocketMQ消息中间件的对比
转载自:https://www.cnblogs.com/felixzh/p/6198070.html引言分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。那么,消息中间件性能究竟哪家强?带着这个疑问,我们中间件测试组对常见的三类消息产品...转载 2019-05-08 10:21:56 · 129 阅读 · 1 评论 -
23 24终止处理程序、异常处理程序与软件异常
原创 2018-08-28 06:02:22 · 260 阅读 · 0 评论 -
22 DLL注入和API拦截
原创 2018-08-28 06:02:11 · 181 阅读 · 0 评论 -
21 线程局部存储
原创 2018-08-28 06:02:00 · 102 阅读 · 0 评论 -
20 DLL高级技术
原创 2018-08-28 06:01:49 · 116 阅读 · 0 评论 -
19 DLL基础
原创 2018-08-28 06:01:40 · 127 阅读 · 0 评论 -
18 堆
原创 2018-08-28 06:01:31 · 89 阅读 · 0 评论 -
17 内存映射文件
原创 2018-08-28 06:01:22 · 88 阅读 · 0 评论 -
16 线程栈
原创 2018-08-28 06:01:11 · 708 阅读 · 0 评论 -
大规模C++程序设计 8,9,10逻辑设计问题
原创 2018-05-07 13:06:52 · 165 阅读 · 0 评论 -
大规模C++程序设计 7包
原创 2018-05-07 13:06:17 · 178 阅读 · 0 评论 -
大规模C++程序设计 6隔离 编译时依赖
原创 2018-05-07 13:05:44 · 748 阅读 · 0 评论 -
qt信号槽接收不到的情况(自定义数据类型+多线程)
一般的基本数据类型,qt都认识,包括QString,所以信号和槽一般都可以正常使用。今天发现一种情况,如果信号的参数是自定义的数据类型,并且在不同的线程中被发送,对应的槽就不会收到。当然也有解决办法直接看例子:a.h#include #include struct Info{ Info(int age = 0, const QString &name =原创 2017-08-04 08:04:27 · 5630 阅读 · 1 评论 -
Qt4过渡至Qt5需要注意的
QtWidgets作为一个独立的模块例如编译时错误error: QMainWindow: No such file or directoryerror: QToolButton: No such file or directoryerror: QWidget: No such file or directory解决办法:在转载 2017-08-03 14:01:54 · 487 阅读 · 0 评论 -
理发师
#include #include using namespace std;const int c_WaitChairCount = 5;HANDLE hSemWaitChair = NULL;HANDLE hMutexBarChair = NULL;HANDLE hSemReady = NULL;HANDLE hSemDone = NULL;HANDLE hMutexCou原创 2017-07-19 10:22:56 · 343 阅读 · 0 评论 -
哲学家就餐模型
解决方案1:#include #include #include using namespace std;CRITICAL_SECTION cs;CRITICAL_SECTION ChopStick[5];int state[5];DWORD WINAPI Philosopher(LPVOID pArg){ int c=(int)pArg; whil原创 2017-07-19 10:18:35 · 822 阅读 · 0 评论 -
读者写者模型
写者优先的写法:读者优先:#include #include using namespace std;HANDLE g_RC_Mutex = NULL;HANDLE g_Mutex = NULL;int g_rc = 0;// 死锁???DWORD WINAPI Reader(){ while (true) { Wai原创 2017-07-19 10:10:27 · 340 阅读 · 0 评论 -
生产者消费者模型
ProducerCustomer.h#ifndef PRODUCERCUSTOMER_H#define PRODUCERCUSTOMER_H#include #include using std::vector;class ProducerCustomer{public: ProducerCustomer(); void Produce(); vo原创 2017-07-19 10:07:03 · 265 阅读 · 0 评论 -
Qt pro 文件详解(转载,来源未知,转的地方也没有标明来源)
Qt pro 文件详解1. TEMPLATE 变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件。Qmake 工具定义了5种模板: a. 应用程序App,为建立一个Qt应用程序创建Makefile文件; b. 库lib,为建立引用程序库而创建Makefile文件; c. 子工程 subdirs,为建立子目录下的目标文件创建一转载 2017-07-19 10:00:36 · 315 阅读 · 0 评论 -
string c_str() 释放问题
今天遇到一个奇葩问题:#include #include using namespace std;void printStr(const char *s){ cout << "msg:" << s << endl;}int main(){ cout << "------------" << endl; string s1 = "abc";原创 2017-04-06 21:08:54 · 2355 阅读 · 0 评论 -
more effective c++基础议题
条款一:区别引用和指针1.不能引用空(比指针效率高,不必测试空)2.引用总是指向最初获取的那个对象(不变性)3.某些操作符按其语法需求,无法由指针完成,就应选择引用。(某些语法需求)比如重载 operator[ ] vector v(10);v[5] = 10; // 返回值是引用如果返回值是指针,则 *v[5] = 10; // 不符合正常操作其他情况原创 2017-02-24 14:29:21 · 373 阅读 · 0 评论 -
关于常量修改
#include // n1 n4 如果是const,通过打印地址可以知道,他们分配到了一起,(可以称作全局常量区)//是不能通过指针改变值的// n2, n3即使是常量,也分配到栈中,可以通过指针修改// 规范中只规定不能修改常量,违反约定会出现“未定义”行为// vs2010中.c可以修改,.cpp不行 // tc2.0中.c可以 // gcc/g++ .c/.cpp 都不行/原创 2017-03-22 08:48:23 · 503 阅读 · 0 评论 -
QT QSignalMapper
信号对应槽比如:鼠标点击按钮信号,对应自己定义的槽。如果想信号发送给槽的参数是某些有用的信息,比如:按钮的内容,怎么办呢?这个时候可以用QSignalMapper信号-----> QSignalMapper---------> 槽 (它在中间插了一杠子)直接用qt帮助中的例子做说明:a.h#include #include class ButtonW原创 2017-07-28 15:01:39 · 336 阅读 · 1 评论 -
读者写者的 死锁问题 初探
我前面的一篇讲读者写者模型的文章中,细心的读者会发现 我在“读者优先” 的代码中写了个“死锁?”两个字,为什么呢?你运行就发发现:分别两个读者写者,两个函数都是While(true),不明白怎么就会莫名其妙的结束。结束时的 循环次数还不一定, 结束也是偶然现象,(我这里比较普遍发生)很奇怪,但细思逻辑,没有发现死锁的情况,那么是怎么回事?1.我以为是ma原创 2017-08-21 11:03:13 · 915 阅读 · 1 评论