自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度遍历二叉树

http://www.cnblogs.com/lscheng/archive/2013/09/11/3313947.html

2016-03-11 13:26:46 408

原创 iptalbe

对BGP-C机器加873端口限制时,是否需要对ssh等也需要添加?iptables -A INPUT  -s   *.*.*.*/32   -d  180.150.177.147/32  -p tcp --dport 873 -j ACCEPTiptables -D INPUT line_number先加允许的条目,然后最后再加个对 873端口的丢弃:iptables -A

2016-03-11 13:25:28 539

原创 LVS的几种模式

DR模式说明 LD与RS必须在相同的一个物理网段内(测试走其他路由,LD将无法转发请求)RS的lo上需要绑定服务的虚IP,同时关闭arp广播(详见配置),因为DR模式是依赖MAC的转发,而不是IP,DR模式在收到请求五元组后不会包头的改写在LD上对IP包头不做masquerade也不需要配置ip_forward,说明参见详细说明RS的路由不用返回LD(NAT模式才需要默认网关指向LD的管理

2016-03-11 11:59:50 772

原创 keepalive源码学习

start_vrrp_child          1,创建子进程          2,父进程执行  thread_add_child,并推出                    2.1 定义新的 thread_t 对象,并进行根据给定参数进行初始化,线程id,处理函数等                              vrrp_respawn_thread

2016-03-11 11:59:00 1188

转载 root密码丢失

1、进入终端 #sudo su root然后输入普通用户的密码,就暂时获得了root帐号的权限了,同时也进入了root账号下了;这时我们可以为所欲为了;不信的话你切换几次账号,看看行不行;嘿嘿2、这是我们就可以做一切只有root用户能做的事了,包括修改root用户的密码,都是可以的,咋有点想当强盗的感觉那;

2014-07-02 20:35:13 441

转载 epoll的原理和用法

设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一个时刻只有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux内核2.4版

2014-05-02 18:15:32 527

转载 C++中int型与string型互相转换

本以为这么多年C#经验,学个C++没多难,现在发现错了。C++真TM难。今天遇到int转string绊了半天,方法很多,不知道为什么搞那么复杂,我只挑最简单易懂的,管他效率不效率的。int转stringint n = 0;std::stringstream ss;std::string str;ssss>>str;string转intstd::string

2014-05-01 09:38:52 458

转载 epoll的ET模式和LT模式

前几天回答一个问题,是关于我们项目中使用的epoll模式的,因为记不大清了,感觉应该使用的就是epoll的高速模式,也就是ET(edge-trigger)模式。这两天闲暇的时候,打开代码又看了一下,在epoll事件注册时并未标记ET模式,看来实际使用的是epoll默认的LT(level-trigger )模式,为什么呢?使用LT意味着 只要 fd 处于 readable/writable 状态

2014-04-16 15:23:15 667

转载 Epoll在LT和ET模式下的读写方式

在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable总结:这个错误表示资源暂

2014-04-16 11:45:16 512

转载 设计模式之——单例模式(Singleton)的常见应用场景

单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。这里又不具体讲如何实现单例模式和介绍其原理(因为这方便的已经有太多的好文章介绍了),如果对单例模式不了解的可以先看下:http://terrylee.cn

2014-04-16 10:13:01 465

转载 linux下查看磁盘空间

如果要查看磁盘还剩多少空间,当然是用df的命令了。[root@localhost ~]# df -h 文件系统              容量 已用 可用 已用% 挂载点 /dev/sda2              14G   11G 2.6G 82% / /dev/sda1              99M   14M   81M 14% /boot t

2014-04-11 23:48:03 488

转载 KeepAlive 选项

在 Apache 中,打开和关闭 KeepAlive 功能,服务器端会有什么异同呢?  先看看理论分析。  打开 KeepAlive 后,意味着每次用户完成全部访问后,都要保持一定时间后才关闭会关闭 TCP 连接,那么在关闭连接之前,必然会有一个Apache 进程对应于该用户而不能处理其他用户,假设 KeepAlive 的超时时间为 10 秒种,服务器每秒处理 50个独立用户访

2014-04-08 22:49:11 773

转载 关于i++和++i的学习

今天在论坛上无意中看到有人问关于i++和++i的问题,感觉自己也不怎么熟悉,就仔细看了一下。感觉有位大侠的回复相当不错,很有特色,把问题讲得很明白,受教了。这里摘录一下,学习学习!------------------------------------------------------------------------------------------------------

2014-04-02 10:28:51 590

原创 用命令修改ip

1. 设置IP sudo ifconfig eth0 203.171.239.155 netmask 255.255.255.224 这样就算设置好了网卡eth0的IP地址和子网掩码2. 设置网关 sudo route add default gw 203.171.239.1293. 设置DNS 修改/etc/resolv.conf,在其中加入 nameserver DNS的地址1 nam

2014-04-01 22:51:46 550

转载 tcpdump

调试网络程序时,通常需要抓包分析。Linux下的tcpdump就很好。Ubuntu下默认已经安装。下面先举个实际的例子.比如我有一个C++程序监听本地端口8889, 另一个newlisp程序通过TCP和其通信。首先可以检查一下有几个网络接口。[plain] view plaincopyprint?root@dean-G

2014-04-01 22:44:01 578

转载 route命令使用

route命令可以用来管理Linux内核的路由表。主要的两个修改操作是add和del,如果没有,则是查看路由表。下面的命令没有任何参数,仅查看本地路由表:[plain] view plaincopyprint?dean@dean-ubuntu:~$ route  Kernel IP routing table  Des

2014-04-01 22:29:02 486

转载 SIGHUP信号

UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。这儿是可能会有,在一定情况之下是没有的。与终端交互的进程是前台进程,否则便是后台进程。SIGHUP

2014-03-31 00:21:04 1055

转载 struct rlimit介绍

Resouce limit的大小可以直接影响进程的执行状况。其有两个最重要的概念:soft limit 和 hard limit。struct rlimit {rlim_t rlim_cur;rlim_t rlim_max;}; 是指内核所能支持的资源上限。比如对于RLIMIT_NOFILE(一个进程能打开的最大文件 数,内核默认是1024),soft limi

2014-03-31 00:18:19 787

原创 strrchr函数

头文件:#include 定义函数:char * strrchr(const char *s, int c);函数说明:strrchr()用来找出参数s 字符串中最后一个出现的参数c 地址,然后将该字符出现的地址返回。返回值:如果找到指定的字符则返回该字符所在地址,否则返回0。

2014-03-31 00:16:16 849

转载 Linux目录架构详解

Linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”,亲爱的读者,您都了解这些目录的含义吗?    ls -l / 遍历文件系统  本文将引领您浏览Linux的目录架构,并解释每个重要目录的含义。  / - Root  通常称为根分区。所有的文件

2014-03-30 21:34:08 441

转载 常用linux命令

1,查看磁盘      df -h2,查看内存大小      free       free [-m|g]按MB,GB显示内存       vmstat3,查看cpu     cat /proc/cpuinfo    只看cpu数量 grep "model name" /proc/cpuinfo | wc -l4,查看系统

2014-03-29 23:27:22 477

转载 c++中用fprintf写文件

#include #include #include #include #include using namespace std;struct Employee{ std::string name; std::string department; double salary; int age; bool gender;};int main(){ FILE *s

2014-03-28 11:18:53 8851

转载 #pragma once 与 #ifdef 的区别

为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__    ... ... // 声明、定义语

2014-03-18 00:13:17 1557

转载 proc多线程访问ORACLE数据库

一.什么是多线程?   一个多线程的应用程序中,线程运行在共享的地址空间里。线程是在进程内部执行的“轻量”级子进程,它们共享代码段和数据段,但是有自己的程序计数器、寄存器和堆栈。全局变量和静态变量在线程之间是共享的,因此通常需要在程序中使用某种互斥机制来管理线程对这些变量的访问,互斥体Mutexes就是用来保证数据完整性的同步装置。     有关互斥体的更多讨论,参看多线程编程方面的文

2014-03-16 22:05:52 1519

原创 进程与线程的比较

线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程 序健壮,但在进程切换时,耗费资源较大,效率要差一些。线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。由于堆栈是每个线程一个,所以局部变量对每一线程来说是私有的。由于所有线程共享同样的代码和全局数据,它们比进程更紧

2014-03-16 21:11:40 496

转载 对象池

使用对象池加速游戏内存分配游戏开发中经常需要频繁产生、销毁大量对象,内存本身够不够用是一方面,尤其是在手机等内存本来就有限的设备上面,另外一点是分配的速度不会对游戏体验造成影响,也就是不能影响帧率。相比内存池,对象池更易用更容易管理,而且还可以利用脏数据,也就是上次被回收掉的对象的数据。而且偶尔的空间分配失败其实不是那么重要(后面会讲怎么在会失败的情况下完成分配任务),游戏

2014-03-16 21:09:25 451

转载 volatile

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行设备的硬件寄存器(如:状态寄存器) 2)  一个中断服务子程序中会访问到的非自动变量(Non-automatic variables

2014-03-12 23:45:22 557

转载 strcpy和memcpy的区别

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

2014-03-12 22:58:00 422

原创 QT简介

1,QT简介      工具:      bin目录:QT的专门工具      examples目录:例子目录      mkspecs目录:QT工具的默认设置      assistant:帮助文档      qtconfig:QT配置工具      qmake:QT的make与项目文件智能创建工具      uic:UI界面的设计文件的编译工具

2014-01-21 21:47:05 609

原创 C++模板

-------------------------------------------------------------------------------------------day 01  AM-------------------------------------------------------------------------------------------

2014-01-20 17:00:52 682

转载 用户行为数据

基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。顾名思义,系统过滤算法就是指用户齐心协力。通过不断的和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的东西,从而越来越满足自己的需求。2.1 用户行为数据显性反馈行为,隐性反馈行为正反馈,负反馈用户行为的表示方式,可能包含6部分:1,user id

2014-01-17 11:40:54 983

转载 什么是推荐系统

1. 推荐系统和搜索引擎的区别:搜索引擎满足了用户有明确需求时的主动查找请求推荐系统能够在用户没有明确目的的时候帮助他们发现兴趣2. 几乎所有的推荐系统都是由前台的展示页面,后台的日志系统以及推荐算法系统3部分组成3. 个性化推荐的成功应用需要两个条件,第一是存在信息过载,因为如果用户可以很容易的从物品中找到喜欢的物品。就不需要个性化推荐了。第二是用户大部分时间

2014-01-17 00:07:43 1037

原创 函数模板

///////////////////////////function.cpp//////////////////////////template string type(T t){return Type::name();}int main(){cout cout int a=10;char b='k';cout cout cout

2014-01-16 18:57:56 475

原创 协同过滤推荐(CF)

一,协同过滤推荐如果用户A和用户B的购买经历非常重叠,而且用户A最近买了一本用户B还不知道的书,那么这时就像B推荐这本书,用户是在隐式地与其他人相互协作,这种技术称谓协同过滤(CF, Collaborative Filtering)。协同方法北京下的常见问题如下:1,如何发现与我们要推荐的用户有着相似偏好的用户?2,如何衡量相似度?3,如何处理还没有购买经历的新用户?4,如

2014-01-14 23:03:54 1182

空空如也

空空如也

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

TA关注的人

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