- 博客(33)
- 资源 (1)
- 收藏
- 关注
转载 长连接的几种实现方式
在日常项目中,大多的时候我们用的是短连接,一个请求过来,一个线程处理完该请求,线程被线程池回收,这个请求就关闭了.虽然这能满足很大部分的需求,但是也有些问题,比如说:如果客户端发的请求比较多,比较频繁,服务端就会忙于建立连接处理请求,由于服务端的线程数也有限,并发比较大的话有可能会造成服务端的崩溃.那有没有一种办法使连接少一些,让一个线程可以处理多个连接?长连接的出现就是为了解决上面的问题.
2014-08-07 20:39:09
2336
原创 ××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
1195
转载 用Python实现一个简单的文件传输协议
写个东西并非无聊或者练手,而是厌烦了每次都得重头写。我已经不是第一次碰到下面的情况:远程到一台可以连接内网的机器,结果发现其环境极为恶劣,没有scp。最夸张的一次,我见过一台机器连man都没装。所幸装了ssh可以让我远程。但没有scp怎么传文件呢?ftp?试了几个命令,没有。HTTP?客户端或者服务器端软件都没有。python?有的。尼玛,最后在远程机器上用python写了个简单的服务器,终于可以
2014-07-29 14:48:20
6277
2
转载 断言(ASSERT)的用法
原文 我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(假设成立){ 程序正常运行;}else{
2014-07-27 21:31:41
732
转载 深入理解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
1268
转载 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
732
转载 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
951
转载 Linux core 文件介绍
Linux core 文件介绍1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -a该命
2014-07-18 18:44:04
609
原创 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
1701
原创 Call to localhost/127.0.0.1:9000 failed on connection hadoop eclipse插件
在我机器上出错的原因是hostname没有配置
2014-06-21 15:08:40
2626
原创 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
810
原创 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
1048
原创 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
629
原创 leetcode String to Integer (atoi)
#define INT_MAX 2147483647 #define INT_MIN (-2147483647 - 1)
2014-06-06 09:38:36
777
转载 c语言静态变量和静态函数
static C语言 C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。 由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次
2014-04-24 15:31:13
744
转载 python中 逗号的 用法
1.曾经看到代码当中有一段颇为奇怪,是 Python代码 b = 111 a = ( b, ) 为什么要写成这样呢( b, )? b后面多一个"," 还能编译通过?!太怪了 后来终于明白了,这a是个Tuple,如果写成 Python代码 a = (b) 那就成了强制转换了, pyth
2014-04-20 11:41:41
4446
转载 C语言中getenv函数的用法
getenv()读取环境变量的当前值的函数 原形:char *getenv(const char *name) 用法:s=getenv("环境变量名"); 需先定义char *s; 功能:返回一给定的环境变量值,环境变量名可大写或小写。如果指定的变量在环境中未定义,则返回一空串。 头文件:stdlib.h eg:String strEnv ="";strEnv
2014-04-18 15:50:20
7711
原创 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
3606
转载 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
12057
原创 qt creator 在linux下不显示控制台 及xterm字体配置
qt creator不支持Gnome默认的终端gnome-terminal,换用xterm。工具=》选项=》环境=》终端:xterm -e
2014-04-17 15:24:33
3291
转载 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
1275
转载 fgets函数
1函数 (ISO C)编辑函数原型:char *fgets(char *buf, int bufsize, FILE *stream);参数:*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。*stream: 文件结构体指针,将要读取的文件流。功能:注意:《UNIX 环境高级编程》中指出,每次调用fgets函数会造成标准
2014-04-16 23:59:26
1107
转载 C标准函数库
摘自维基百科C标准函数库(重定向自C標準函數庫)C 标准函数库查 论 编在 C语言程序设计里,C 标准函数库(C Standard library)是所有目前符合标准的头文件(head file)的集合,以及常用的函数库实现程序,例如 I/O 输入输出和字符串控制。不
2014-04-16 23:50:26
1169
原创 最简单的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
934
转载 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
7409
转载 eclipse各种快捷键
(1)Ctrl+Space 说明:内容助理。提供对方法,变量,参数,javadoc等得提示, 应运在多种场合,总之需要提示的时候可先按此快捷键。 注:避免输入法的切换设置与此设置冲突 (2)Ctrl+Shift+Space 说明:变量提示 (3)Ctrl+/ 说明:添加/消除//注释,在eclipse2.0中,消除注释为Ctrl+\ (4)Ctrl+Shif
2014-04-15 21:38:35
799
转载 Linux进程管理与作业控制
进程(Process)是一个程序在其自身的虚拟地址空间中的一次执行活动。多个程序并发执行,可以提高系统的资源利用率和吞吐量。进程和程序:程序只是一个静态的数据和指令集合,而进程是一个程序的动态执行过程,具有生命周期,是动态的产生和消亡的。进程是资源申请、调度和独立运行的单位,因此它使用系统中的运行资源,而程序不占用系统的运行资源。程序与进程无一一对应关系。一个程序可以由多个进程所共
2014-04-15 21:25:02
822
Visual Assistx 10.8.2029.0 安装及破解文件 visual studio 2013
2014-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人