自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大干的学习笔记

记录所学所得,点点滴滴积少成多

  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

转载 长连接的几种实现方式

在日常项目中,大多的时候我们用的是短连接,一个请求过来,一个线程处理完该请求,线程被线程池回收,这个请求就关闭了.虽然这能满足很大部分的需求,但是也有些问题,比如说:如果客户端发的请求比较多,比较频繁,服务端就会忙于建立连接处理请求,由于服务端的线程数也有限,并发比较大的话有可能会造成服务端的崩溃.那有没有一种办法使连接少一些,让一个线程可以处理多个连接?长连接的出现就是为了解决上面的问题. 

2014-08-07 20:39:09 2228

原创 ××redis××redisServer中dirty成员解读

struct redisServer {//... long long dirty; /* changes to DB from the last save */ long long dirty_before_bgsave; /* used to restore dirty on failed BGSAVE *///...};如注释所言,redis

2014-07-29 16:51:39 1126

转载 用Python实现一个简单的文件传输协议

写个东西并非无聊或者练手,而是厌烦了每次都得重头写。我已经不是第一次碰到下面的情况:远程到一台可以连接内网的机器,结果发现其环境极为恶劣,没有scp。最夸张的一次,我见过一台机器连man都没装。所幸装了ssh可以让我远程。但没有scp怎么传文件呢?ftp?试了几个命令,没有。HTTP?客户端或者服务器端软件都没有。python?有的。尼玛,最后在远程机器上用python写了个简单的服务器,终于可以

2014-07-29 14:48:20 6223 2

转载 断言(ASSERT)的用法

原文  我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。  在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(假设成立){ 程序正常运行;}else{

2014-07-27 21:31:41 666

转载 深入理解Redis主键失效原理及实现机制

int expireIfNeeded(redisDb *db, robj *key) {     获取主键的失效时间     long long when = getExpire(db,key);     假如失效时间为负数,说明该主键未设置失效时间(失效时间默认为-1),直接返回0     if (when     假如Redis服务器正在从RDB文件中加载数据,

2014-07-23 15:14:07 1197

转载 c99之 柔性数组成员

在讲述柔性数组成员之前,首先要介绍一下不完整类型(incomplete type)。不完整类型是这样一种类型,它缺乏足够的信息例如长度去描述一个完整的对象。6.2.5 Typesincomplete types (types that describe objects but lack information needed to determine their sizes). C与

2014-07-22 16:56:45 682

转载 CPU-bound(计算密集型) 和I/O bound(I/O密集型)

I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。CPU bound 指的是系统的 硬盘/内存 效能 相对 CPU 的效能 要好很多,此时,系统运作,大部分的状况是 CPU Loading 100%,CPU 要读/写 I/O (硬盘/内存),I/O在很短的时

2014-07-22 11:15:43 879

转载 Linux core 文件介绍

Linux core 文件介绍1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -a该命

2014-07-18 18:44:04 563

转载 redis aof 持久化 解读源码精品博文

Redis源码学习-AOF数据持久化原理分析(0)、

2014-07-17 14:58:58 727

原创 linux man 手册中的下划线字段

一直以为这个下划线字段是个链接,可以链接到其他文档,通过某种方式可以查看链接到的文档的内容,但是

2014-07-11 09:05:43 6987 3

原创 ubuntu 14.04 hadoop eclipse 初级环境配置

接触hadoop第二天,配置hadoop到环境也用了两天,将自己配置到过程写在这里,希望对大家有所帮助!---------------安装jdk-------------------------------1.下载jdk1.6.0_452.解压到opt文件夹下,配置/etc/profile,在文件尾部加上#set java environmentJAVA_H

2014-06-22 21:16:53 1640

原创 Call to localhost/127.0.0.1:9000 failed on connection hadoop eclipse插件

在我机器上出错的原因是hostname没有配置

2014-06-21 15:08:40 2504

原创 leetcode Roman to Integer

只有C、X、I可以作为前缀,后缀的情况不需要考虑,直接加上去即可,我的代码还不是很简洁,请指正class Solution: # @return an integer def romanToInt(self, s): if s is None or len(s) <= 0: return 0 #1000以内罗马数

2014-06-12 18:26:44 756

原创 leetcode Recover Binary Search Tree

看到很多写Recover Binary Search Tree这道题的文章都用中序递归来做,我在这里告诉大家,这样做的空间复杂度也是O(n)的,所以虽然他们的答案虽然通过了,但还是没有符合题目的要求,O(1)空间复杂度遍历二叉树的一种算法是morris遍历,详见这里以下为python的代码class Solution: def __init__(self): #

2014-06-10 16:42:27 1002

原创 leetcode Flatten Binary Tree to Linked List

我用的方法是非递归的前序遍历eclass Solution {public: void flatten(TreeNode *root) { if (!root || (!root->left && !root->right)) return; stack s; if (root->right) s.push(root->right); i

2014-06-06 16:12:46 574

原创 leetcode Distinct Subsequences

学到的东西:应用动态规划c++中multimap的shi'y

2014-06-06 11:46:05 709

原创 leetcode String to Integer (atoi)

#define INT_MAX 2147483647 #define INT_MIN (-2147483647 - 1)

2014-06-06 09:38:36 716 1

原创 自我批评:太堕落!

http://blog.csdn.net/ivsking看了上面这位大哥的博客后,觉得自己真的是虚度了太多光阴,

2014-05-05 12:15:52 827 1

转载 c语言静态变量和静态函数

static C语言       C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。       由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次

2014-04-24 15:31:13 710

转载 python中 逗号的 用法

1.曾经看到代码当中有一段颇为奇怪,是 Python代码  b = 111  a = ( b, )    为什么要写成这样呢( b, )? b后面多一个"," 还能编译通过?!太怪了 后来终于明白了,这a是个Tuple,如果写成 Python代码  a = (b)   那就成了强制转换了, pyth

2014-04-20 11:41:41 4325

转载 C语言中getenv函数的用法

getenv()读取环境变量的当前值的函数 原形:char *getenv(const char *name) 用法:s=getenv("环境变量名");    需先定义char *s; 功能:返回一给定的环境变量值,环境变量名可大写或小写。如果指定的变量在环境中未定义,则返回一空串。 头文件:stdlib.h eg:String strEnv ="";strEnv

2014-04-18 15:50:20 7588

原创 Linux操作系统实验教程 费翔林主编 第二章 实验3 答案

#include#include#include#include#include#includepthread_mutex_t counter_clock = PTHREAD_MUTEX_INITIALIZER;static long long total_words = 0;void * count_words(void*);int main(){ pthread_

2014-04-17 21:19:28 3480

转载 qt下添加pthread 解决undefined reference to `pthread_create'

http://blog.chinaunix.net/uid-26663150-id-3178637.html学习多线程时,因为pthread的库不是Linux系统的库,所以在进行编译的时候要加上:-lpthread。如下图:  那如果像上图所说用集成开发环境Qt的话,如何添加库呢,因为编译程序的时候是不带参数的,经搜索发现可以如下图添加库,这样用继承开发环境的同仁们也不用发

2014-04-17 20:34:43 11676 2

原创 qt creator 在linux下不显示控制台 及xterm字体配置

qt creator不支持Gnome默认的终端gnome-terminal,换用xterm。工具=》选项=》环境=》终端:xterm -e

2014-04-17 15:24:33 3111

转载 ctype.h

摘自维基百科 http://zh.wikipedia.org/wiki/Ctype.hctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符、控制字符等等。既支持单字节字符,也支持宽字符。[1]目录1实现2函数

2014-04-17 00:02:10 1194

转载 fgets函数

1函数 (ISO C)编辑函数原型:char *fgets(char *buf, int bufsize, FILE *stream);参数:*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。*stream: 文件结构体指针,将要读取的文件流。功能:注意:《UNIX 环境高级编程》中指出,每次调用fgets函数会造成标准

2014-04-16 23:59:26 1055

转载 C标准函数库

摘自维基百科C标准函数库(重定向自C標準函數庫)C 标准函数库查 论 编在 C语言程序设计里,C 标准函数库(C Standard library)是所有目前符合标准的头文件(head file)的集合,以及常用的函数库实现程序,例如 I/O 输入输出和字符串控制。不

2014-04-16 23:50:26 1096

原创 最简单的linux线程创建、共享变量

#include #include #include #include #include #include static int SharedData = 4;//在线程中改变共享变量void * create(void *arg){ printf("new pthread...\n"); printf("shard data = %d \n",SharedDa

2014-04-16 23:07:50 872

原创 虚拟机下从windows向ubuntu传文件最快到方法

就是用优盘……试了好多次,

2014-04-16 19:16:30 2847

原创 linux下eclipse C++ 多线程调试

初学linux编程,想要用linux下eclipse C++ 多线程调试,发现相关

2014-04-16 12:58:27 2235 1

转载 Eclipse 单步调试

http://www.ibm.com/developerworks/cn/linux/opensource/os-ecbug/进入debug模式,设置断点,然后运行程序到断点[1]快捷键(F8)直接执行程序。[2]快捷键(F5)单步执行程序,遇到方法时进入。[3]快捷键(F6)单步执行程序,遇到方法时跳过。[4]快捷键(F7)单步执行程序,从当前方法跳出。  若要改变变量的

2014-04-15 21:57:06 7289

转载 eclipse各种快捷键

(1)Ctrl+Space 说明:内容助理。提供对方法,变量,参数,javadoc等得提示, 应运在多种场合,总之需要提示的时候可先按此快捷键。 注:避免输入法的切换设置与此设置冲突 (2)Ctrl+Shift+Space 说明:变量提示 (3)Ctrl+/ 说明:添加/消除//注释,在eclipse2.0中,消除注释为Ctrl+\ (4)Ctrl+Shif

2014-04-15 21:38:35 759

转载 Linux进程管理与作业控制

进程(Process)是一个程序在其自身的虚拟地址空间中的一次执行活动。多个程序并发执行,可以提高系统的资源利用率和吞吐量。进程和程序:程序只是一个静态的数据和指令集合,而进程是一个程序的动态执行过程,具有生命周期,是动态的产生和消亡的。进程是资源申请、调度和独立运行的单位,因此它使用系统中的运行资源,而程序不占用系统的运行资源。程序与进程无一一对应关系。一个程序可以由多个进程所共

2014-04-15 21:25:02 777

Visual Assistx 10.8.2029.0 安装及破解文件 visual studio 2013

支持包括visual studio2013以下的vs及vc VC2010的破解方法: 使用2010的朋友,因为2010以及更新版本中的Visual Assist X是使用Extension的方式安装的,所以你得到这个路径去破解,就是把破解补丁拷贝到这个路径下,直接运行补丁程序或者覆盖VA_X.dll 即可: Windows7和Windows8中的路径: C:/Users/用户名/AppData/Local/Microsoft/VisualStudio/10.0/Extensions/Whole Tomato Software/Visual Assist X/10.8.2029.0 XP的路径:: C:/Documents and Settings/用户名/Local Settings/Application Data/Microsoft/VisualStudio /10.0/Extensions/Whole Tomato Software/Visual Assist X/10.8.2029.0 VC2012中: 在【C:\Users\你自己的用户名\AppData\Local\Microsoft\VisualStudio\11.0\Extensions】下,你可以看到名字比较随机的文件夹,例如tr5pfbo0.tul,如果你安装过多个版本的VisualAssist,那么就会有多个这样的文件夹,每个文件夹中都会有一个VA_X.dll,如果你弄不清楚哪个才是最新的Visual Assist,那么就索性把破解补丁覆盖到每一个文件夹中去,反正旧版本的也用不到了,覆盖完了就破解完毕了。 VS2013: Windows7下 C:\Users\[Administrator]\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\[xokyiduq.kmx] [Administrator] 这里是你的用户名 [xokyiduq.kmx] 这里是一个随机的文件夹,可以到\12.0\Extensions这个目录下找一找有VA_X.dll这个文件的文件夹,就是Visual Assistx的安装目录 将压缩包内的VA_X.dll覆盖进去

2014-05-20

空空如也

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

TA关注的人

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