08 2015 档案
摘要:在SocketServer模块的学习中,我们了解了多线程和多进程简单Server的实现,使用多线程、多进程技术的服务端为每一个新的client连接创建一个新的进/线程,当client数量较多时,这种技术也将带来巨大的开销,服务器的内存毕竟是有限的,而客户的量级可能非常庞大,因此为每个客户端连接创...
阅读全文
摘要:目录: 1.异常 2.地址族 3.套接字类型 4.模块方法 5.Socket对象与实例方法 socket模块提供了Python中的低层网络连接接口,用于操作套接字操作。异常 socket模块共定义了4种异常:socket.error 套接字相关的错误将会抛出该异常,伴随的值是解释错误...
阅读全文
摘要:1. Properties 处于安全考虑,通常在对实例属性进行读写时要进行一定的预判和处理,比如参数的判断、净化等,这些方法通常对应于getXXX、setXXX这样的函数,Python提供了一种 “property” 机制,便于实现这样的操作。 首先,我们来看一个只读的 property:>>>...
阅读全文
摘要:Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buffer, xrange 集合:set, fronzeset 映射:dict 文件:file...
阅读全文
摘要:通常计算机系统中讨论二进制的编码问题涉及到的有:原码、反码、补码,这里简单探讨一下他们之间的关系。原码与反码 原码是最先被提出的一种编码方式,使用最高位表示符号(0表示正,1表示负),其余位表示数值。原码存在一个问题,就是自然界中 +0 和 -0 是相同的,但 +0 的原码是 0b00,而 -...
阅读全文
摘要:本文介绍Python mmap模块与mmap对象的用法。 mmap 模块提供“内存映射的文件对象”,mmap 对象可以用在使用 plain string 的地方,mmap 对象和 plain string 的区别是:mmap 对象不提供字符串对象的方法;mmap 对象是可变的,而 str 对象...
阅读全文
摘要:Python多进程方面涉及的模块主要包括:subprocess:可以在当前程序中执行其他程序或命令;mmap:提供一种基于内存的进程间通信机制;multiprocessing:提供支持多处理器技术的多进程编程接口,并且接口的设计最大程度地保持了和threading模块的一致,便于理解和使用。 ...
阅读全文
摘要:Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes)。 Python 2 中的Queue模块在Python 3中更名为 queue。Queue对象的创建 可以通过实例化Queue类型获得队列对象:q ...
阅读全文
摘要:Python对多线程提供了很好的支持,Python中多线程相关的模块包括:thread,threading,Queue。可以方便地支持创建线程、互斥锁、信号量、同步等特性。 1.thread:多线程的底层支持模块,除了其中提供的 Lock 原语外,一般不建议使用。 2.threading:基...
阅读全文
摘要:本文介绍Python中的线程同步对象,主要涉及 thread 和 threading 模块。 threading 模块提供的线程同步原语包括:Lock、RLock、Condition、Event、Semaphore等对象。1. Lock1.1Lock对象的创建 Lock是Python中最底层...
阅读全文
摘要:当磁盘无法写入的时候,一般有以下可能:文件系统只读磁盘已满I节点使用完一、 遇到只读的文件系统 文件系统自动设置成只读可能是系统自我保护的一种机制,因此需要实现弄清究竟是什么原因造成了文件系统的只读。如果想要改变文件系统的只读属性,重新挂载目标分区即可。例1. 重新挂载改变/home分区的读写...
阅读全文
摘要:本随笔介绍CPU负载的排查手段。 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度。 不可打扰:阻塞,正在等待I/O例1. 使用uptime查看系统负载# uptime 19:...
阅读全文
摘要:常见工作中,计算机系统的资源主要包括CPU,内存,硬盘以及网络,过度使用这些资源将使系统陷入困境。本系列一共四篇博文,结合我在实习期间的学习,介绍一些常见的Linux系统排障工具及方法。 第1篇——内存篇 第2篇——CPU篇 第3篇——磁盘I/O篇 第4篇——网络篇 事实上,当上述服务...
阅读全文
摘要:在本博客 《Python字符串系列》 中,将介绍以下内容:Python内置的str对象及操作字符串的格式化Python中的正则表达式re模块 本文将介绍Python内置的 str 类型,列举Python中字符串对象支持的方法,使用这些方法可以实现强大的字符串处理功能。 在Python 2 中...
阅读全文
摘要:os模块的功能主要包括文件系统部分和进程管理部分,这里介绍其中与文件系统相关的部分。 当请求操作系统执行操作失败时,os模块抛出内置异常exceptions.OSError 的实例,可以通过 os.error 访问这个类型,OSError的实例有三种属性:errno:操作系统错误的错误代码st...
阅读全文
摘要:stat模块中定义了许多的常量和函数,可以帮助解释 os.stat()、os.fstat()、os.lstat()等函数返回的 st_result 类型的对象。 通常使用 os.path.is*() 这类函数来测试一个文件的类型,这些方法对同一个文件进行多次测试时,stat()系统调用都是不可...
阅读全文
摘要:文件描述字(file descriptor,fd)是系统中用来唯一记录当前已经打开的文件的标识号,fd是一个整数。 除了file对象外,Python还提供对fd的操作,对fd的操作更加底层,fd和Python中的file对象是不同的概念。在介绍file对象时已经提过,调用 f.fileno()...
阅读全文
摘要:本系列将从四个部分简单介绍Python对文件系统的操作与支持: 1. Python内置的 file 对象 2. Python的os模块对文件、文件系统操作的支持 3. Python的os.path模块对文件系统操作的支持 4. Python对文件描述字操作的支持 5. Python的s...
阅读全文
摘要:用于排查Linux系统的网络故障。 网络排查一般是有一定的思路和顺序的,其实排查的思路就是根据具体的问题逐段排除故障可能发生的地方,最终确定问题。 所以首先要问一问,网络问题是什么,是不通,还是慢? 1. 如果是网络不通,要定位具体的问题,一般是不断尝试排除不可能故障的地方,最终定位问题根...
阅读全文
摘要:list(列表)是Python内置的可变序列(Sequence)类型,list的对象的方法也都是就地(in-place)更改调用这些方法的列表对象,List的一些细节可以直接为list的某个下标赋值,改变list中指定下标位置的值,例如:l[2] = 'hello world';list切片可以...
阅读全文
摘要:原文地址:http://www.cnblogs.com/Security-Darren/p/4716082.html 转载务必注明出处! 线索二叉树的思想来源于二叉树的存储结构中,存在一些空的指针域,因此是否能够将这些空间利用起来,存储一些关于节点间先后顺序的信息,由此产生了线索二叉树。线索...
阅读全文
摘要:如果要定义的函数很简单,一个return语句就能搞定,可以使用lambda表达式来定义, lambda表达式的语法如下:lambda parameters: expression lambda表达式并不包含return语句,凡是使用函数作为参数或返回值的地方,都可以使用lambda表达式,l...
阅读全文
摘要:生成器(Generator)是Python中的一类特殊对象,如果一个函数中出现一次或多次yield表达式,那么这个函数就是一个生成器。 生成器的特点是:调用生成器时,函数体并没有执行调用生成器时,返回的是一个特殊的迭代器对象,这个迭代器对象封装了生成器的函数体、本地变量和当前执行点;当生成的迭...
阅读全文
摘要:Python中,字典是容器,所以可以使用len()方法统计字典中的键值对的个数;字典是可迭代的,迭代的依据是字典中的键。in, not in 等运算符判断指定的键是否在字典中;如果索引一个字典中不存在的键,将会抛出异常KeyError;del d[k]将会删除k对应的键值对,如果d中不存在k,则抛出...
阅读全文
摘要:Python中,内置类型set和frozenset用来表示集合,我们首先查看这两个类型支持的特殊对象,从而可以理解他们的特性。>>> dir(set)['__and__', '__class__', '__cmp__', '__contains__', '__delattr__', '__doc__...
阅读全文