自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决C++动态库中存在 Symbol not found的问题

在动态库链接的so库的文件中,只用extern 引用了其他文件中定义的变量,但是在编译的时候没有编译到库中,导致此符号在so文件中是-U的状态,真正链接使用的时候会报错,找不到符号。解决方法就是,将对应的定义此变量的文件编译进动态库中。...

2020-10-29 13:32:29 4110

原创 某外企c++面试题目

重建二叉树。判断一个链表是否有环。socket编程中Listen中参数的含义。介绍一下多线程编程中的条件变量。Linux的虚拟内存。函数调用的过程。动态链接和静态链接。动态链接库很大,但是只加载其中一个函数怎么解决?生产者消费者模型编程实现。...

2020-04-04 20:35:17 2689 1

原创 后台面试题目

链表逆序。两个栈完成一个队列。兄弟单词。IP和UDP的区别。设计一个池中函数访问,不用if-else。线程局部存储。Linux内存显示。对于全局变量int数据,多线程操作后的结果?是否存在中间值?说说c++的智能指针。...

2020-04-01 17:59:07 424

原创 XX网c++程序员面试题目

逆序打印链表,不借助其他工具。Linux系统中cp和mv的区别。Linux系统中系统监控的相关命令大全。为什么C++的析构函数设置成虚函数。Linux中多线程编程的API有哪些。介绍一下Linux系统中的自旋锁。Tcp非阻塞IO什么情况下可读可写。多客户端连接造成访问性能下降怎么排查。进程之间是怎么同步的。建立TCP连接消耗哪些资源。写1M的数据,write返回成功,怎么判断...

2020-03-31 22:16:52 352

原创 c++后台面试题目

实现快速排序算法,排序算法有哪几种?线程池的有点和缺点?优点:线程是一种珍贵的资源,使用线程池可以减少创建和销毁线程的次数,减少了反复创建和销毁线程的消耗;可以调整线程池中工作线程的数量,防止因为消耗过多,导致服务器崩溃;多线程可以大大提高cpu的利用率,快速响应,可以同时处理多个任务。缺点:使用线程池也存在很大风险,多个线程共享资源,就会存在资源竞争的情况,为了保护资源而加锁,可能导致线...

2020-03-29 19:54:50 358

原创 某少儿教育面试题目

走棋盘问题,有多少条路径?给一个m*n大小的棋盘,从左上角到右下角有多少条路径?动态转换方程式:dp[i][j] = dp[i-1][j] + dp[i][j-1].int maxPaths(int m,int n){ vector<vector<int> > dp(m,vector<int>(n,1)); for (int i ...

2020-03-27 22:51:20 583

转载 cmake手册

CMAKE手册CMAKECMake 用法导览Preface : 本文是CMake官方文档CMake Tutorial (http://www.cmake.org/cmake/help/cmake_tutorial.html) 的翻译。通过一个样例工程从简单到复杂的完善过程,文档介绍了CMake主要模块(cmake, ctest, cpack)的功能和使用环境;从中可以一窥cmake的大体形貌...

2019-12-24 09:21:39 531

转载 docker 实现redis集群搭建

原文地址:https://www.cnblogs.com/cxbhakim/p/9151720.html摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群。首先,我们需要理论知识:Redis Cluster是Redis的分布式解决方案,它解决了redis单机中心化的问题,分布式数据库——首要解决把整个数据...

2019-05-20 10:18:59 579

转载 通过ELK快速搭建一个你可能需要的集中化日志平台

地址:http://www.cnblogs.com/huangxincheng/p/7918722.html

2019-05-06 11:02:48 231

转载 应该如何做好持续集成和部署?

原文地址:https://www.cnblogs.com/Dev0ps/p/9113377.html前言持续集成和部署是每一个互联网开发团队都必须要面对的问题,由于业务和技术团队快速增长,技术积累较弱,所以一个高效的,可持续的运维规范尤为重要。高效可持续的运维环境需要合理的规范作为支撑:应用管理规范权限管理规范配置变更规范发布策略规范日志运维规范一、应用管理规范应用版本化...

2019-05-06 10:56:20 284

转载 详解Nginx服务器配置

这篇Nginx配置的文章明月感觉是写的非常的详细的,感觉是非常的时候新手入门时学习Nginx来用,特此原文转载分享了。转载地址:http://baijiahao.baidu.com/s?id=1604485941272024493&wfr=spider&for=pc概述在前面《Nginx服务器开箱体验》 一文中我们从开箱到体验,感受了一下Nginx服务器的魅力。Nginx是轻...

2019-05-06 10:02:03 176

转载 const的用法

原文地址:https://www.cnblogs.com/azbane/p/7266747.htmlconst的用法,特别是用在函数后面在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this...

2019-03-08 09:29:55 186

转载 【原+转】用CMake代替makefile进行跨平台交叉编译

在开始介绍如何使用CMake编译跨平台的静态库之前,先讲讲我在没有使用CMake之前所趟过的坑。因为很多开源的程序,比如png,都是自带编译脚本的。我们可以使用下列脚本来进行编译:123./configure --prefix=/xxx/xx --enable-static=YESmakemake install  相信手动在类Unix系统上面编译过开源程序的同学对上面的命令肯定非...

2019-03-07 11:01:50 287

转载 对于拷贝构造函数和赋值构造函数的理解

转载:https://www.cnblogs.com/GODYCA/archive/2013/01/16/2862885.html昨天晚上在看智能指针的时候,我发现自己连一个拷贝构造函数和赋值构造函数都写不出来,自己就尝试写了一个版本,结果发现错误百出,对于拷贝构造函数和赋值构造函数的理解仅仅停留在理论的方面,而不知其中太多的内涵。比如我们都知道拷贝构造函数和赋值构造函数最大的不同在于:拷贝...

2019-03-06 10:25:33 919

转载 NGINX参数设置--转

一、主配置段1、正常运行必备的配置#运行用户和组,组身份可以省略user nginx nginx;#指定nginx守护进程的pid文件pid path/to/nginx.pid;#指定所有worker进程所能打开的最大文件句柄数worker_rlimit_nofile 100000;2、性能优化相关的配置#worker进程的个数,通常应该略少于CPU物理核心数,也可以使用auto...

2019-02-27 08:58:11 537

转载 千万级pv架构设计(转)

高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储)。如:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访问静态服务器的,就不要去访问动态服务器。以此类推:能不访问数据...

2019-01-23 16:11:44 480

转载 实践总结:银行容器云平台建设需求与设计

原文地址:https://baijiahao.baidu.com/s?id=1601341541732219852&amp;wfr=spider&amp;for=pc容器平台的建设要考虑场景、技术、系统对接、成本、人员技能等因素,有不小的复杂度。本文从一个最精简容器平台所需考虑的各个方面,结合作者的项目实践,提出供大家参考的建议。作者:蔡凯来源: talkwithtrend目录1 银行建...

2018-12-19 13:44:04 2910

转载 函数式编程

原文地址:https://www.cnblogs.com/steven-yang/archive/2016/09/18/5881979.html阿袁工作的第1天: 函数式编程的历史阿袁中午和阿静一起吃午餐。阿袁说起他最近看的《艾伦·图灵传 如谜的解谜者》。由于阿袁最近在学习Scala,所以关注了一下图灵传中关于函数式编程的一些历史。关于函数式编程的故事,可以从1928年开始讲起:希尔伯特在...

2018-10-18 09:42:50 177

转载 常用的正则表达式-转载

很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,包括校验数字、字符、一些特殊的需求等等。给自己留个底,也给朋友们做个参考。一、校验数字的表达式数字:^[0-9]*n位的数字:\dnn位的数字:\dn n位的数字:^\d{n} 至少n位的数字:^\d{n,}m−n位的数字:\dm,nm...

2018-08-27 09:20:56 168

转载 通过Git将代码提交远程仓库

搞开发经常会用到把代码提交到远程服务器,之前也是懵懂的。今天来整理了一下。具体操作如下:1.进入到远程服务器ssh name – 远程服务器地址2.进入以后新建一个空的仓库git init –bare name – name 仓库的名称3.退出远程服务器exit – 退出4.到需要提交的文件的目录里面/Users/liguoliang/Documents/GWY-D...

2018-08-20 22:12:49 165

转载 Mysql的日志

mysql日志详细解析转自:http://pangge.blog.51cto.com/6013757/1319304MySQL日志:主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意...

2018-08-08 16:39:45 185

转载 libevent源码深度剖析

原文地址: http://blog.csdn.net/sparkliang/article/details/4957667 第一章1,前言Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一...

2018-07-21 14:40:01 207

转载 Linux进程管理——fork()和写时复制

写时复制技术最初产生于Unix系统,用于实现一种傻瓜式的进程创建:当发出fork( )系统调用时,内核原样复制父进程的整个地址空间并把复制的那一份分配给子进程。这种行为是非常耗时的,因为它需要:· 为子进程的页表分配页面· 为子进程的页分配页面· 初始化子进程的页表· 把父进程的页复制到子进程相应的页中创建一个地址空间的这种方法涉及许多...

2018-07-18 09:49:17 540

转载 链接器,符号解析与重定位-概念

链接器必须对这些可重定位目标文件完成两个主要任务:符号解析。将每个符号引用刚好和一个符号定义联系起来。重定位。链接器把每个符号定义与一个虚拟地址联系起来,然后修改所有对这些符号的引用,使得它们指向这个存储位置,从而重定位这些节。符号分为四类: 导出符号(export,本地符号), 导入符号(import,外部符号), 静态符号(本地符号), 局部符号(本地符号,不出现在符号表中)。...

2018-07-18 09:47:52 1577

原创 select模型linux内核源码注释总结

1、最中用户空间的系统调用会调用到sys_select函数asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, struct timeval __user *tvp){ s64 timeout = -1; struct...

2018-07-07 11:01:04 916 1

转载 图解Nginx 中的4级指针

图解Nginx 中的4级指针:http://blog.chinaunix.net/uid-27767798-id-3840094.html分类: C/C++2013-08-08 22:45:11 nginx的所有配置结构体全部放在一个cycle的四级指针中,本文就具体分析一下每级指针究竟指向的是什么,下图表示了这个四级指针每一级的指向,图中虚拟地址模拟了真实地址,ctx指针存的指向虚...

2018-07-05 17:27:18 471

转载 c++智能指针

一、智能指针类:std::auto_ptr由于 auto_ptr 基于【排他所有权模式】,这意味着:两个指针(同类型)不能指向同一个资源,复制或赋值都会改变资源的所有权。一个简单的例子1:[cpp] view plain copy#include &lt;iostream&gt; #include &lt;memory&gt; class A { p...

2018-07-05 17:26:31 281

转载 c++四种强制类型转换

C++ 类型转换(C风格的强制转换):在C++基本的数据类型中,可以分为四类:整型,浮点型,字符型,布尔型。其中数值型包括 整型与浮点型;字符型即为char。(1)将浮点型数据赋值给整型变量时,舍弃其小数部分。(2)将整型数据赋值给浮点型变量时,数值不变,但是以指数形式存储。(3)将double型数据赋值给float型变量时,注意数值范围溢出。(4)字符型数据可以赋值给整型变量...

2018-07-01 12:09:17 282 1

原创 最长的公共子串

char base1[9]={'1','A','B','2','3','4','5','C','D'};char base2[7]={'1','2','3','4','5','E','F'};int longestCountinue(){ int dp[9][7]={{0},{0}}; int i,j; for(i=0;i&lt;9;i++) { ...

2018-06-26 14:21:59 165

原创 共享内存介绍(一)

1、 概述 共享内存是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程地址空间,这些进程间的数据传递就不在涉及内核。不涉及内核的含义是:进程不再通过执行任何进入内核的系统调用来彼此传递数据。 上图是一些其他IPC形式在进行进程间的数据传递,通常都需要内核和应用进程之间进行数据的复制工作。在这个过程中,需要四次的复制过程,系统的开销比较大。 而对比...

2018-06-23 12:18:54 799

转载 Linux内存管理之mmap详解

Linux内存管理之mmap详解一. mmap系统调用mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系统...

2018-06-23 00:26:42 605

原创 矩阵的最短路径

int findshortcurt(){ int base[4][4]={{1,3,5,9},{8,1,3,4},{6,6,6,6},{8,8,8,0}}; int dp[4][4]={{0,},{0,}}; dp[0][0] = base[0][0]; int i,j; /*求出矩阵的第一行和第一列的步骤值*/ for(i=1;i&lt;4;i+...

2018-06-22 18:13:41 1226

原创 换钱最少的组合方法

/*0 max max max max 1 max max max max 2 0 0 0 0 0 1 1 1 2 2 2 0 0 0 0 0 1 1 1 2 2 2 */#define MAX_VALUE 65535int leastmoney(){ int aim = 10; int money[3] = {5,3,2}; int i,j; int...

2018-06-22 18:12:34 221

原创 换钱的方法数

//暴力轮询的方法int process1(int arr,int index,int aim){ int res = 0; if(index == arr.size()) { res = aim == 0?1:0//退出条件 } else { for(int i=0;arr[index] * i &lt;=aim...

2018-06-22 18:11:12 328

原创 最大递增子序列

//思路就是用d[i]来记录a[i]为结尾的子序列中最大递增子序列的长度,//对于每一个i,令j从1到i - 1遍历,当a[j] &lt; a[i],比较当前d[i]和每一个d[j] + 1的大小,将最大值赋给d[i]int maxarray()//返回最长递增子序列{ int a[9]={2,1,5,3,6,4,8,9,7};//13489 int dp[9]={0,};...

2018-06-22 18:08:39 747

转载 阻塞与非阻塞的IO网络读写

转载地址:https://www.cnblogs.com/charlesblc/p/6202402.html 看我之前的文章就知道,一般对于网络读的socket,都会加上O_NONBLOCK,非阻塞的选项。int setnonblocking(int fd) { int old_option = fcntl(fd, F_GETFL); int new_option = old_o...

2018-06-20 13:57:54 726

原创 大数系列

转载地址:https://blog.csdn.net/sinyusin/article/details/52291418&lt;strong&gt;&lt;span style="font-size:18px;"&gt;#include&lt;stdio.h&gt; #include&lt;algorithm&gt; char num1[111], num2[111]; char ...

2018-06-20 11:44:59 176

转载 c++ 的多态和实现原理

C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类...

2018-06-20 11:20:29 126

转载 多线程实现简单的事件异步处理框架

转载地址:https://www.cnblogs.com/lcplcpjava/p/6884420.html老实说,多线程在web开发里面非常常见,很多web容器本身就支持多线程,所以很多时候我们在进行web开发的时候并不需要考虑多线程相关的负责问题,而只需要实现相关的业务功能即可。所以,可以概括地讲,很多时候的web开发,并没有多线程方面的考虑,因为web应用本身就是在多线程基础上的了。...

2018-06-20 10:46:28 431

原创 剑指offer:不用加减乘除做加法

冥思苦想做个记录。题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。这道题目不让加减乘除,则只能通过移位的方式,参考十进制的加法:第一步:例如5加7等于12,首先不计算进位,则为2,计算进位为10 + 2.注意这里只能进一位,因为是十进制,则进一位就变为10.所以最后相加为2+10=12;第二步:怎么判断是否还要继续进位?5+7大于10,需要向前进一位。第三步:最...

2018-06-15 19:37:10 133

空空如也

空空如也

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

TA关注的人

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