自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

转载 盲猜原子变量、内存屏障、内存模型、锁之间的关系

1、atomic_flag 和atomic<>的区别,atomic_flag 无论无锁是多大代价(一些cpu可能无锁代价大),都保证atomic_flag是无锁的。atomic<>会视情况,可能是有锁的也可能是无锁的,哪个开销小选哪个。2、C++内存模型可以被看作是C++程序和计算机系统(包括编译器,多核CPU等可能对程序进行乱序优化的软硬件)之间的契约,它...

2019-09-30 23:48:00 180

转载 四、c++总结------linux多线程服务端编程

转载于:https://www.cnblogs.com/l2017/p/11373315.html

2019-08-18 18:14:00 163

转载 c++函数声明的位置对函数重载的影响

c++为了兼容c,也是采用(假)单遍编译。这特别影响函数重载决议(当c++编译器读到一个函数调用语句时,它必须从目前已看到的同名函数中选出最佳函数,哪怕后面的代码中出现了更合适的匹配) 1 #include<iostream> 2 using namespace std; 3 void f(int a ) 4 { 5 cout <&...

2019-08-17 14:16:00 231

转载 lua调用dll demo

使用的是lua5.3DllMain.cpp 1 //生成的dll 是 lua_add53.dll 2 //luaopen_lua_add 3 extern "C" { 4 #include "F:/lua_src/lua-5.3.5_Win64_vc15_lib/include/lua.h" 5 #include "F:/lua_src/lua-5....

2019-08-16 18:00:00 169

转载 三、分布式编程总结------linux多线程服务端编程

转载于:https://www.cnblogs.com/l2017/p/11349002.html

2019-08-13 22:19:00 122

转载 二、多线程及服务器编程总结------linux多线程服务端编程

转载于:https://www.cnblogs.com/l2017/p/11335609.html

2019-08-11 17:05:00 87

转载 一、智能指针及线程同步总结------linux多线程服务端编程

二、多线程及服务器编程总结------linux多线程服务端编程https://www.cnblogs.com/l2017/p/11335609.html三、分布式编程总结------linux多线程服务端编程https://www.cnblogs.com/l2017/p/11349002.html四、c++总结------linux多线程服务端编程https:/...

2019-08-08 00:05:00 139

转载 vscode remote wsl 的NoPermissions permission denied问题

在 wsl这个目录code-insiders . 之后会报这个错无法打开“wsl”: Unable to read file (NoPermissions (FileSystemError): Error: EACCES: permission denied, stat '/root/wsl')。这个问题其实很简单,wsl是软连接,vscode应该是不支持打开软连接的。直...

2019-07-25 15:56:00 3146

转载 tcp/udp注意事项

转载于:https://www.cnblogs.com/l2017/p/11229290.html

2019-07-22 23:50:00 101

转载 ptmalloc tcmalloc jemalloc 总结的总结 及覆盖原理

windows下还有detours库可以hook转载于:https://www.cnblogs.com/l2017/p/11186347.html

2019-07-14 23:06:00 131

转载 epoll源码解析翻译------说使用了mmap的都是骗子

本文地址//https://www.cnblogs.com/l2017/p/10830391.html//https://blog.csdn.net/li_haorenselect poll epoll这三个都是对poll机制的封装。只是select跟poll傻了点epoll里并没有找到mmap相关的代码。并没有用到内核态内存映射到用户态的技术。但这个技术是存在的。d...

2019-05-08 10:37:00 1711

转载 重点思维导图------redis深度历险

转载于:https://www.cnblogs.com/l2017/p/10823005.html

2019-05-06 23:41:00 94

转载 全文思维导图------redis设计与实现

转载于:https://www.cnblogs.com/l2017/p/10808802.html

2019-05-04 16:18:00 90

转载 有大佬拉我一把麽,现在广州还有c++后台实习招聘麽

有大佬拉我一把麽,现在广州还有c++后台实习招聘麽转载于:https://www.cnblogs.com/l2017/p/10799183.html

2019-05-01 09:41:00 59

转载 redis所有数据结构及对象------redis设计与实现

建议点开原图看转载于:https://www.cnblogs.com/l2017/p/10793601.html

2019-04-29 23:50:00 63

转载 epoll好文章

https://www.cnblogs.com/apprentice89/p/3234677.htmlhttps://www.jianshu.com/p/aa486512e989https://cloud.tencent.com/developer/article/1005481最后看看epoll独有的两种模式LT和ET。无论是LT和ET模式,都适用于以上所说的流程...

2019-04-19 22:44:00 122

转载 互斥锁和条件变量锁注意事项

如果互斥锁变量是静态分配的,那么我们可以把它初始化成常值PTHREAD_MUTEX_INITIALIZER例如 :static pthread_mutex_t lock =PTHREAD_MUTEX_INITIALIZER;如果互斥锁是动态分配的(例如malloc new)或者分配在共享内存区中,那么我们在运行之时通过调用pthread_mutex_init函数初始化...

2019-04-19 00:07:00 138

转载 Posix信号

Posix实时信号的值在SIGRTMIN和SIGRMAX之间(包括两者)。如果需要实时行为,我们必须使用在SIGRTMIN和SIGRMAX之间的实时信号,且在安装信号处理程序时必须给sigaction指定SA_SIGINFO标志。实时行为指  信号是排队的。就是说,如果同一信号产生了三次,它就递交了三次。以先进先出顺序排队。对于不排队的信号来说,产生了三次的信号可能只递交...

2019-04-18 22:40:00 164

转载 Posix消息队列注意事项

随内核的持续性读总是返回最高优先级的最早消息。当往一个空队列放置一个消息时,允许产生一个信号或启动一个线程。可认为是一个消息链表队列中每个消息具有  1.一个无符号整数优先级  2.消息的数据部分长度(可以为0)  3.数据本身(如果长度)链表头中为当前队列的两个属性:队列中允许的最大消息数(mq_mqxmsg)以及每个消息的最大大小(mq_msgsi...

2019-04-18 22:31:00 166

转载 管道/FIFO注意事项

管道1. 其本质是一个伪文件(实为内核缓冲区)2. 由两个文件描述符引用,一个表示读端,一个表示写端。3. 规定数据从管道的写端流入管道,从读端流出。管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实现。管道的局限性:数据一旦被读走,便不在管道中存在,不可反复读取。缓冲区是有限由于管道采用半双工通信方式。因此,数据只能在一个方向上流动。...

2019-04-17 15:14:00 293

转载 unix网络编程卷2:进程间通信

管道没有名字,只能有亲缘关系使用。FIFO也叫有名管道,有名所以没有了这个限制。管道提供一个单向数据流,创建函数返回两个文件描述符。一个用来读,一个用来写。宏S_ISFIFO可用于确定一个描述符或文件是管道还是FIFO。转载于:...

2019-04-16 21:28:00 137

转载 写得好的文章

智能指针weak_ptr的核心源码实现https://blog.csdn.net/dong_beijing/article/details/79504591linux【进程学习】笔记——PCB、进程环境、进程原语、虚拟地址……https://blog.csdn.net/jobbofhe/article/details/52152831算法:C++实现二叉树遍历(递归、非递...

2019-04-13 13:37:00 65

转载 sgi stl内存池实现------源码加翻译

class __default_alloc_template { enum { unit = 8 };//分配单位 后面直接用8代替 enum { max_bytes = 128 };//最大分配字节数 后面直接用128代替 enum { list_size = 16 }; //数组大小 后面直接用16代替 static char* _S_start_free...

2019-04-13 13:01:00 99

转载 剑指offer

1 注意空指针,2 空类型,没有任何成员变量和成员函数,对改类型求sizeof  结果为1,本来应该是0,但当我们声明该实例的时候,他必须在内存种占有一点空间,否则无法使用该实例。  (1)加上构造函数和析构函数    还是1  (2)弄个虚析构函数    多了指向虚函数表的指针。32位上,一个指针4字节,所以为4。 64位上,...

2019-04-12 14:48:00 117

转载 小知识

pcb就是task_struct 由slab算法分配在内核内存 1kb 在 0-1GB的内核空间里,所有进程共享同一个内核空间0-1GB因为 进程运行在用户态不会修改内核空间。内核空间 环境变量等信息 栈 堆 (多个线程栈会夹在堆中) 未初始化变量段,初始化变量段,代码段。ipcs 是一个UINX/Linux 的命令,用于报告系统的消息队列、信号量、共享内存等父...

2019-03-29 20:33:00 102

转载 c++ volatile

就是每次都要到内存上读取数据,不能直接用寄存器的数据(第一次直接取自内存然后放在寄存器,第二次编译器就会优化成使用寄存器的值)并不解决多线程的事https://liam.page/2018/01/18/volatile-in-C-and-Cpp/被volatile修饰的变量,在对其进行读写操作时,会引发一些可观测的副作用。而这些可观测的副作用,是由程序之外的因素决定的。...

2019-03-24 15:01:00 71

转载 乐观锁和悲观锁

https://zhuanlan.zhihu.com/p/40211594悲观锁(用前都上锁)总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等...

2019-03-24 11:11:00 47

转载 c++ inline使函数实现可以在头文件中,避免多重定义错误

作者:Jon Lee链接:https://www.zhihu.com/question/53082910/answer/133612920来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。inline 绝对是C++里最让人混淆的关键词之一了(比static还过分)。============== Update 30 Nov 2016看其他评...

2019-03-23 21:23:00 392

转载 无锁队列的实现

无锁队列https://coolshell.cn/articles/8239.html  链表实现 cas 入队时注意 lock free(锁无关)问题 防止死锁 Tail 出队 如果是...

2019-03-23 19:45:00 134

转载 同步异步阻塞非阻塞

https://www.jianshu.com/p/486b0965c296写得很好,但有问题转载于:https://www.cnblogs.com/l2017/p/10581072.html

2019-03-22 21:26:00 60

转载 log(m+n)找第k大

递归 int find_kth(vector<int>& nums1, int begin1, int size1, vector<int>& nums2, int begin2, int size2, int k) { size1 = min(k, size1);//第k大最多只要前k个 size2 = min(k, s...

2019-03-07 10:20:00 153

转载 LeetCode

1.Two SumEasy9870320FavoriteShareGiven an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would ...

2019-02-27 21:33:00 49

转载 vector在一个循环里同时删除插入

vector<int> a; a.push_back(10); a.push_back(20); a.push_back(30); a.push_back(40); a.push_back(50); for (auto i = a.begin(); i !=a.end();) { if (*i == 20) { ...

2019-02-18 16:48:00 164

转载 生成所有可能的搜索二叉树

product_all_tree(0, 5);递归返回子树的指针集合。作为 左子树或右子树。从而构建整颗树。#include<iostream>#include<vector>using namespace std;//double p[1000]{ 0,0.15,0.10,0.05,0.10,0.20 };double p[100...

2019-02-02 23:44:00 348

转载 机器学期启蒙书------数学之美

这是一本好书,刚好对应我的知识水平,看得很爽不用停歇。编译原理、通信原理、概率论、线性代数。转载于:https://www.cnblogs.com/l2017/p/10326697.html...

2019-01-27 15:17:00 116

转载 subset子集全排序问题

思路一可以用递推的思想,观察S=[], S =[1], S = [1, 2] 时解的变化。可以发现S=[1, 2] 的解就是 把S = [1]的所有解末尾添上2,然后再并上S = [1]里面的原有解。因此可以定义vector<vector<int> > 作为返回结果res, 开始时res里什么都没有,第一步放入一个空的vecotr<i...

2019-01-25 22:06:00 188

转载 第15章动态规划------算法导论

15.1钢条切割#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<algorithm>#include<ctime> #include<string>using namespace std;int p[1000]{ 0,1,5,8,9,1...

2019-01-17 20:13:00 89

转载 内存管理思维导图------现代操作系统(第四版)

现代操作系统第四版中文版的内存管理部分的思维导图,看不清的话,右键 在新页面中打开图片 就能放大了转载于:https://www.cnblogs.com/l2017/p/10261684.html...

2019-01-13 00:35:00 652

转载 进程与线程思维导图------现代操作系统(第四版)

现代操作系统的进程与线程部分的思维导图,看不清的话,右键 在新页面中打开图片 就能放大了现代操作系统的进程与线程部分的思维导图,看不清的话,右键 在新页面中打开图片 就能放大了转载于:https://www.cnblogs.com/l2017/p/10247200.html...

2019-01-09 22:12:00 318

转载 现代操作系统

魔数:识别文件类型/代码中的常数转载于:https://www.cnblogs.com/l2017/p/10205246.html

2019-01-01 17:10:00 80

空空如也

空空如也

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

TA关注的人

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