自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(66)
  • 资源 (6)
  • 收藏
  • 关注

原创 初步了解前端知识

最近,需要做一点点前端的工作,期间找了一些技术博客了解了一些,分享一下。

2016-11-13 22:19:17 779

原创 Python中threading的join和setDaemon的区别及用法[例子]

Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的不用,并用例子直观显示他们的区别。

2014-12-04 19:33:21 58283 14

转载 C++中的public、protected与private的类成员权限设置和继承方式

以下几篇结合看,参考:http://www.jizhuomi.com/software/96.htmlhttp://www.jizhuomi.com/software/98.htmlhttp://www.cnblogs.com/york-hust/archive/2012/06/01/2530799.htmlhttp://blog.163.com/clevertanglei900@

2014-11-27 09:38:38 3424

转载 C/C++程序员是这样理解内存的

从C/C++程序的运行过程,讲解内存

2014-11-07 11:17:07 828

转载 C/C++值传递和引用传递

以下,是http://www.cnblogs.com/Mr-xu/archive/2012/08/07/2626973.html

2014-11-07 11:13:47 772

转载 C/C++ 编译过程 学习资料

C/C++编译过程理解 - woaidongmao - C++博客

2014-09-16 15:14:51 771

转载 git(含github)教程[0基础]

想学git怎么使用的,在网上找了好久,下面zhe

2014-09-06 16:46:42 623

原创 自己用的.vimrc、.screenrc和.bashrc文件

一、vimrcset background=darkset smarttab set tabstop=4 set shiftwidth=4 set expandtab set mouse=aset nocompatibleset backspace=indent,eol,startset showmatch set laststatus=2 set

2014-01-08 15:43:21 2728

转载 Python 三种导入模块的方法和区别

方法一import modname        模块是指一个可以交互使用,或者从另一Python 程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。模块可以通过这种方法来使用其它模块的功能。      用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,

2013-06-22 18:21:18 16617 1

转载 Python命名机制之浅析

一、引子给出下面这段程序的输出:class A(object): def __init__(self): self.__private() self.public() def __private(self): print 'A.__private()' def pu

2013-06-22 18:14:00 752

转载 Python lambda 浅析

python lambda是在python中使用lambda来创建匿名函数,而用def创建的方法是有名称的,除了从表面上的方法名不一样外,python lambda还有哪些和def不一样呢?    (1)、 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。    (2) 、python lambda它只是一个表达式,而

2013-06-22 18:03:10 931

转载 Python 深拷贝与浅拷贝

简单点说1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy 深拷贝 拷贝对象及其子对象用一个简单的例子说明如下:>>>import copy>>>a = [1, 2, 3, 4, ['a', 'b', 'c']]>>> b = a>>> c = copy.copy(a)>>> d = copy.deepc

2013-06-22 17:55:32 639

转载 Python enumerate用法

在同时需要用到index和value值的时候可以用到enumerate,参数为可遍历的变量,如字符串,列表等,返回enumerate类。例:import strings = string.ascii_lowercasee = enumerate(s)print sprint list(e)输出结果为: [(0, 'a'), (1, 'b'), (2, 'c'

2013-06-22 17:53:40 866

转载 Python里面如何实现tuple和list的转换?

(1)、函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变。      例如,tuple([1,2,3])返回(1,2,3), tuple(‘abc’)返回(‘a’.'b’,'c’).如果参数已经是一个tuple的话,函数不做任何拷贝而直接返回原来的对象,所以在不确定对象是不是tuple的时候来调用tuple()函数也不是很耗费的

2013-06-22 17:50:02 11206

转载 Python tuple 元组详解

(1)、Tuple是不可变list。一旦创建了一个tuple 就不能以任何方式改变它。(2)、Tuple与list 的相同之处   定义tuple 与定义list的方式相同, 除了整个元素集是用小括号包围的而不是方括号。    Tuple的元素与list 一样按定义的次序进行排序。Tuples 的索引与list一样从0开始, 所以一个非空tuple的第一个元素总是t[0]。

2013-06-22 17:42:03 1247

转载 OLAP、OLTP的介绍和比较

OLTP与OLAP的介绍    数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易

2012-12-08 00:06:15 195548 8

转载 MySQL数据库引擎介绍、区别、创建和性能测试

数据库引擎介绍MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自己做一个引擎。下面介绍几种数据库引擎:    ISAM:ISAM是一个定义明确且历经

2012-12-07 22:35:47 1924

转载 apache和tomcat区别

解析一         apache支持静态页,tomcat支持动态的,比如servlet等,       一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。       apche可以支持phpcgiperl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理

2012-11-27 19:17:48 545

转载 基于Socket的UDP和TCP编程

一、概述TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(datagramsocket)的一种。二、TC

2012-11-15 23:21:00 843

转载 OSI七层和TCP/IP四层之比较

TCP/IP:数据链路层:ARP,RARP网络层: IP,ICMP,IGMP传输层:TCP ,UDP,UGP应用层:Telnet,FTP,SMTP,SNMP.OSI:物理层:EIA/TIA-232, EIA/TIA-499, V.35,V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS数据链路层:Frame

2012-11-15 23:13:16 1538

转载 Socket中listen/accept函数的区别

listen函数摘要:listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程。在TCP服务器编程中listen函数把进程变为一个服务器,并指定相应的套接字变为被动连接。listen函数在一般在调用bind之后-调用accept之前调用,它的函数原型是:intlisten(int sockfd, int backlog)参数so

2012-11-15 22:59:46 29517 4

转载 进程和线程的区别

线程与进程的关系:线程是指进程内的一个执行单元,也是进程内的可调度实体.线程与进程的区别(概要):(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.(4)二者均可并发执行.描述:

2012-11-15 22:56:47 1264

转载 多线程API函数

主要的多线程API1、线程创建函数:int pthread_create (pthread_t * thread_id,__const pthread_attr_t * __attr,void *(*__start_routine) (void *),void*__restrict __arg);2、获得父进程ID:pthread_t pthread_self (void)

2012-11-15 22:53:13 1365

转载 Linux下多路复用IO接口epoll/select/poll的区别

select比epoll效率差的原因:select是轮询,epoll是触发式的,所以效率高。Select:1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024.2.操作限制:通过遍历FD_SETSIZE(1024)个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍.Poll:1.Socket数量几乎无限制

2012-11-15 22:48:29 1321

转载 Linux shell 编程基础

Shell基本语法像高级程序设计语言一样,Shell也提供说明和使用变量的功能。对Shell来讲,所有变量的取值都是一个字串,Shell程序采用$var的形式来引用名为var的变量的值。Shell有以下几种基本类型的变量。(1)Shell定义的环境变量:Shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这些变量,常用的Shell环境变量有:HO

2012-11-15 22:43:15 648

原创 lftp下载整个文件夹的命令及举例

1. >lftp IP2. >user username password3. >mirror remotedir localdir/注:         remotedir:将要下载的文件夹名;         localdir:本地文件夹名,remotedir的上一级文件夹。        下载结束后,本地目录结构是:localdir/remotedir

2012-05-23 14:31:28 11819

转载 数据库范式简析和举例

简介     数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式。 范式的目标     应用数据库范式可以带来许多好处,但是最重要的好处归结为三点:     1.减少数据冗余(这是最主要的好处,其他好处都是由

2012-05-17 17:07:39 12794 6

转载 路由器与交换机的区别及举例

一、路由器与交换机的区别      (1)工作层次不同最初的的交换机是工作在OSI/RM开放体系结构的数据链路层,也就是第二层,而路由器一开始就设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层(数据链路层),所以它的工作原理比较简单,而路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。       (2)数据转发所依据的对象不同

2012-05-15 18:13:58 1050

转载 C语言地址传递和值传递简析(基于堆栈的简析)

值传递过程中,被调函数的形参作为被调函数的局部变量处理,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。值传递的特点是被调函数对形参的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。 而在地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间

2012-05-15 17:23:08 1014

转载 gdb 查看堆栈信息、加载core文件、连接到其它进程

当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。一、gdb 查看堆栈信息下面是一些查看函数调用栈信息的GDB命令:1、backtrace、bt打印当前的函数调用栈的所有信息。如:(gdb) bt#0 func (n=2

2012-05-15 16:41:00 30313

转载 static和extern的区别

static:一、在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。        a.在全局区分配内存。        b.如果没有初始化,其默认值为0.        c.该变量在本文件内从定义开始到文件结束可见。2、

2012-05-15 16:16:57 15305

转载 struct sockaddr与struct sockaddr_in的区别和联系

一、struct sockaddr:在linux环境下,该结构体在/usr/include/linux/socket.h中定义,具体如下:struct sockaddr {unsigned short sa_family;  /* 地址族, AF_xxx */char sa_data[14];  /* 14字节的协议地址*/};二、struct sockaddr_in:在l

2012-05-03 16:13:38 3317

转载 CDN原理

要了解CDN的实现原理,首先让我们来回顾一下网站传统的访问过程,以便理解其与CDN访问方式之间的差别:由上图可见,传统的网站访问过程为:1. 用户在浏览器中输入要访问的域名;2. 浏览器向域名解析服务器发出解析请求,获得此域名对应的IP地址;3. 浏览器利用所得到的IP地址,向该IP对应的服务器发出访问请求;4. 服务器对此响应,将数据回传至用户

2012-02-27 15:30:05 3753

转载 异步套接字基础:多路复用、select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

select函数:       系统提供select函数来实现多路复用输入/输出模型。原型:        #include sys/time.h>        #include unistd.h>        int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *tim

2012-02-24 16:06:37 744

转载 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器

第1章  引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器

2012-02-23 14:43:21 1018

转载 Sharding与数据库分区(Partition)的区别

随着时光流逝,数据库中的数据表越来越大,服务器已经不堪重负,为了解决这个问题,提出了数据分区的软件理念,简称sharding。下面就是这一软件理念的相关介绍。1.Sharding定义  "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。  Sharding 不

2012-02-23 11:08:03 7599

转载 Memcache的一致性 Hash 算法(Consistent hashing)

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的

2012-02-22 15:17:58 819

转载 数据库系统日志的处理和作用

--内存大小,cpu速度,磁盘速度,磁盘大小这四个因素哪个对数据库系统来说最重要?也就是说哪个因素是数据库性能的瓶颈?其实是磁盘速度。数据库的作用就是把磁盘中东西读到内存中然后处理完毕后提交上去,操作系统能管理的内存也就是几GB,但是超过最大内存容量的数据库很普遍,所以瓶颈还是在磁盘上面。sqlserver数据库存放数据用的是页,每8个连续的页叫做一个盘区,每页有若干个数据行。sqlser

2012-02-21 17:12:36 16423

转载 strstr和strncmp源码实现

extern char *strstr(char *s1, char *s2)用法:#include 功能: 找出s2字符串在s1字符串中第一次出现的位置(不包括s2的串结束符)返回结果:返回该位置的指针,如找不到,返回空指针。源码实现:char *strstr( const char *s1, const char *s2 ){  int len2;  if (

2012-02-15 11:27:28 6187 1

转载 Mysql - flush privileges 命令

命令:mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;­mysql> flush privileges;­mysql> quit­答:­mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动

2012-02-08 17:52:14 29922 1

深入理解Java虚拟机(第二版)(带完整目录)

2017-02-28

SourceInsight.[中文版].[绿色版]

SourceInsight中文绿色版,解压即用。

2012-01-12

Source_Insight.[教程].[中文].[含图]

Source_Insight中文教程,含图

2012-01-12

Socket编程所有函数说明[详细]

Socket编程所有函数说明[详细],文档排版整齐。

2012-01-11

TinyXML指南[中文].pdf

本文是 TinyXML 2.5.3 版本 Document 中的《TinyXML Tutorial》的翻译文档,原文出自 TinyXML 源码包doc目录。在线文档:http://www.grinninglizard.com/tinyxmldocs/tutorial0.html。 TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。简 单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。TinyXML使用文档对象模型(DOM),这意味着XML数据被解析成一个可被浏览和操作的C++对象,然后它可以被写到磁盘或者另一个输出流中。你也可以把C++对象构造成一个XML文档然后把它写到磁盘或者另一个输出流中。

2012-01-11

空空如也

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

TA关注的人

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