- 博客(18)
- 资源 (26)
- 收藏
- 关注
转载 模版的完全特化与偏特化
https://www.cnblogs.co模版特化:任何针对模版参数进一步进行条件限制设计的特化版本。 <<泛型思维>>完全特化:针对所有的模版参数进行特化。 <<c++ primer>>举例如下:template<class T,class N> class Template{}; 全特化:t...
2019-03-30 20:11:12 3310
转载 SQL三大范式
http://www.cnblogs.com/haofaner/archive/2011/12/20/2294461.html第一范式(1NF)(必须有主键,列不可分)数据库表中的任何字段都是单一属性的,不可再分create table aa(id int,NameAge varchar(100))insert aa values(1,''无限-女'')没有达到第一...
2019-03-29 15:32:22 2162
转载 深入解析条件变量
https://www.cnblogs.com/harlanc/p/8596211.html深入解析条件变量(condition variables)目录深入解析条件变量(condition variables)深入解析条件变量什么是条件变量(condition variables)一个例子关于上面例子的几个疑问为什么pthread_cond_wait需要加锁?...
2019-03-28 15:38:13 198
转载 单台服务器并发TCP连接数到底可以有多少
http://www.cnblogs.com/zhangkele/articles/8955051.html常识一:文件句柄限制在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是“Socket/File:Can't open so many files”。这时你需要明白操作系统对可以打开的最大...
2019-03-21 21:09:44 2400
原创 read和write系统调用
read和write系统调用的使用是简单的,但实际上其封装了及其复杂的操作。因为Linux视一切的设备为文件,读写设备也被抽象成了读写文件。所以read和write系统调用下封装了复杂的对各种设备的读写操作。以read为例大体原理如下:read系统调用中,会根据用户传入的fd进行查表,发现相应的fd对应的到底是什么设备,再进入相应设备专有的read逻辑。比如fd是open file返回的磁...
2019-03-18 11:38:50 833
原创 怎样运用pipe更为便捷地实现线程池
先讨论一下pipe的原子性问题,具体而言就是多个写线程写一个pipe,同时多个读线程读这个piperead pipe只要pipe中有数据,read就不会阻塞,不会阻塞就不会在读的中途被换出,也就能确保原子性。要达到上述目的,一个简单的做法就是write的数据量是read的数据量的倍数或相同。这样read就不会在读到一半的数据时被阻塞。write pipe只要pipe中未满,writ...
2019-03-18 11:31:40 385
原创 read和write线程的调度以及其原子性的思考
常有文章说系统调用都具有原子性,这是有待商榷的。一个read操作读取一个fd,在读取部分数据后,fd暂时没有数据,read会被阻塞,CPU自然会将其换出,调度其他进程进行操作。而很可能换入的进程也对同一个fd进行操作,这就导致了最开始的read读取的不是连续的数据。所以read的原子性在这种情况下是不能被保证的。...
2019-03-18 11:18:33 657
原创 常见问题汇总
redis套接字高并发搜素二叉树变有序链表细过剑指offer锁存哪cdn(Content Delivery Network,即内容分发网络)用了什么锁线程的几种状态单例设计模式及其实现,单例的几种写法http了解,1.0和2.0,状态码mySQL怎样扛高并发 通过Redis来提供缓存机制,通过中间件来提...
2019-03-18 09:52:26 168
原创 牛客选择题笔记
阅读C++语言代码输出()int main(){ int arr[]={1,2,3,4,5,6,7}; int *p=arr; *(p++)+=89; printf("%d,%d\n",*p,*(++p)); return 0;}第4行: *p=arr[0]第5行:arr[0]=90;p自加1,此时*p=arr[1];第6行:先计算*(+...
2019-03-17 10:12:46 576
原创 Linux命令find与grep
https://www.cnblogs.com/zhangmo/p/3571735.html递归查找某个目录下相应的文件名:#在根目录下查找所有名字带有hosts的文件find / -name *hosts*在一个特定文件中找特定的字符cat CMakeLists.txt |grep CXX在一个文件夹下递归查找特定字符grep -r CXX...
2019-03-13 11:52:59 195
原创 netstat、tcpdump和gdb命令的配合使用debug多线程网络程序
不熟练某个命令时记得使用man查找手册一、netstatnetstat命令会截取执行命令那一瞬间的网络状态在调试网络bug时一般最先使用netstat查看网络状态,主要关注TCP状态是否正确,接收和发送区是否有大量数据堆积。-t(tcp)显示tcp相关的网络信息-p(process) 显示占用相应端口的程序名字以及进程号PID-a(all) 显示所有状态的端口包括list...
2019-03-11 16:48:38 471
原创 获取多行由空格隔开的输入
主要使用sstream,getline,get进行配合#include <iostream>#include <string>#include <vector>#include <sstream>using namespace std;int main(){ vector<int> input_helper; int...
2019-03-11 15:09:44 314
原创 通过Jump Game 展示动态规划的思维过程 LeetCode 55. Jump Game
https://leetcode.com/problems/jump-game/方法一:递归(回溯、DFS) 超时在递归树的叶子节点判断,如果能够达到将成员变量置为trueclass Solution {public: bool result; void fun(vector<int>& nums, int start) { if (start>...
2019-03-09 20:17:03 219
原创 头条上机算法题(最大点问题)
P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。思路:对于所有的点先按照y从大到小排序O(N...
2019-03-05 09:29:20 873
原创 使用ios::sync_with_stdio(false) 来提高输入输出性能
cin和cout用起来很方便,但是性能不及scanf和printf,我们可以使用std::ios::sync_with_stdio(false);来提升cin和cout的性能与sanf和printf相当
2019-03-05 09:16:13 499
转载 Linux系统修改PATH环境变量方法
Linux系统修改PATH环境变量方法在Linux安装一些软件通常要添加路径环境变量PATH.PATH环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就可以执行.比如常用的ls命令就是添加好了环境变量才可以直接执行ls0查看PATH环境变量终端输入echo $PATH返回如下,各路径用:隔开.$符号用于展开变量的值....
2019-03-01 11:36:53 1750
同步队列-无锁队列-循环数组无锁队列.zip
2019-05-14
SQL必知必会PostgresSQL数据导入脚本
2018-08-06
Virtual Assist 破解版(支持VS2017)超好用的插件
2018-07-29
Linux设备驱动程序(中文版第三版)高清pdf
2018-07-29
Linux多线程服务端编程:使用muduo C++网络库
2018-07-29
Effective Modern C++
2018-07-29
代码_老码识途-从机器码到框架的系统观逆向修炼之路
2018-07-29
C++编程思想(卷一+卷二)高清带目录
2018-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人