06 2017 档案

摘要:进程锁lock 进程间通信:队列 队列常用方法 生产者消费者模型 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。 阅读全文
posted @ 2017-06-29 17:25 鸿飞冥冥 阅读(235) 评论(0) 推荐(0)
摘要:一、背景知识: 进程的概念起源于操作系统,是操作系统最核心的概念。 进程是对正在运行程序的一个抽象,操作系统的其它所有内容都是围绕进程的概念展开的。 进程是操作系统提供的最古老也是最重要大的抽象概念之一。即使可以利用的cpu只有一个,也能保证支持伪并发的能力。将一个单独的cpu变成多个虚拟的cpu( 阅读全文
posted @ 2017-06-27 17:07 鸿飞冥冥 阅读(146) 评论(0) 推荐(0)
摘要:一、为什么要有操作系统 现代的计算机系统主要是由一个或者多个处理器,主存、磁盘、硬盘、键盘、鼠标、先回去、打印机、网络接口及其他的输入输出设备组成。 一般而言,现代计算机系统是一个复杂的系统。如果每个应用程序员都必须掌握该系统的所有细节,那就不可能再编写代码类,会严重影响程序员的开发效率。 并且管理 阅读全文
posted @ 2017-06-26 17:55 鸿飞冥冥 阅读(200) 评论(0) 推荐(0)
摘要:#异常处理 #异常:程序运行时发生错误的信号(异常的追踪信息、异常类、异常值) #python中的异常种类:在python中不同的异常可以用不同的类型(python中统一类类与类型)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 #常用异常 AttributeError #试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError #输入/输出异常;基本上是无... 阅读全文
posted @ 2017-06-26 16:40 鸿飞冥冥 阅读(103) 评论(0) 推荐(0)
摘要:##服务端import socket,struct,json,os class MYTCPServer: address_family=socket.AF_INET socket_type=socket.SOCK_STREAM allow_reuse_address=False max_packet_size=8192 coding='utf-8' ... 阅读全文
posted @ 2017-06-24 09:26 鸿飞冥冥 阅读(213) 评论(0) 推荐(0)
摘要:Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协 阅读全文
posted @ 2017-06-23 14:39 鸿飞冥冥 阅读(185) 评论(0) 推荐(0)
摘要:''' 定义MySQL类 1、对象有id、host、port三个属性 2、定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一 3、提供两种实例化方式,方式一:用户传入host和port方式 方式二:从配置文件中获取 4、为对象定制方法,save和get,save能自动将对象序列化到文件中,文件好为id,文件路径为配置 文件中DB_PATH,;get方法用来从文件... 阅读全文
posted @ 2017-06-17 19:33 鸿飞冥冥 阅读(211) 评论(0) 推荐(0)
摘要:一、什么是继承? 继承是一种创建类的方式,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 二、新式类和经典类 python2中类分为:新式类和经典类 class Foo(object): #继承与object及其子类都是新式类 pass class Bar: #没有 阅读全文
posted @ 2017-06-12 23:23 鸿飞冥冥 阅读(359) 评论(0) 推荐(0)
摘要:一、 一、面向过程:核心是过程,过程就是解决过程的步骤,即先干什么,再干什么,基于面向过程设计的程序,就好比在设计一条流水,是一种机械思维方法 优点:复杂的问题简单化 缺点:可扩展性差(牵一发而动全身) 应用场景:Linux内核,httpd,git 二、面向对象:核心是对象,要理解对象应该把自己当成上帝,在上帝眼中一切存在的事务都是对象... 阅读全文
posted @ 2017-06-12 17:27 鸿飞冥冥 阅读(190) 评论(0) 推荐(0)
摘要:import subprocess ''' sh-3.2# ls /Users/egon/Desktop |grep txt$ mysql.txt tt.txt 事物.txt ''' res1=subprocess.Popen('ls /Users/jieli/Desktop',shell=True,stdout=subprocess.PIPE) res=subprocess.Popen(... 阅读全文
posted @ 2017-06-10 23:03 鸿飞冥冥 阅读(318) 评论(0) 推荐(0)
摘要:hash:一种算法 ,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法三个特点:1.内容相同则hash运算结果相同,内容稍微改变则hash值则变2.不可逆推3.相同算法:无论校验多长的数据,得到的哈希值长度固定。 阅读全文
posted @ 2017-06-10 22:13 鸿飞冥冥 阅读(163) 评论(0) 推荐(0)
摘要:针对:标题 :下面是key=value形式的配置文件,如下: 阅读全文
posted @ 2017-06-10 18:39 鸿飞冥冥 阅读(106) 评论(0) 推荐(0)
摘要:xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。 xml的格式如下,就是通过<>节点来区别数据结构的: xml协议在各个语言里的 阅读全文
posted @ 2017-06-10 15:35 鸿飞冥冥 阅读(111) 评论(0) 推荐(0)
摘要:shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型 阅读全文
posted @ 2017-06-10 15:25 鸿飞冥冥 阅读(120) 评论(0) 推荐(0)
摘要:之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值。 什么是序列化? 我们把对象 阅读全文
posted @ 2017-06-10 15:24 鸿飞冥冥 阅读(149) 评论(0) 推荐(0)
摘要:高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中 shutil.copyfile(src, dst)拷贝文件 shutil.copymode(src, dst)仅拷贝权限。内容、组、用户均不变 sh 阅读全文
posted @ 2017-06-10 15:15 鸿飞冥冥 阅读(130) 评论(0) 推荐(0)
摘要:1、打印进度条 2、 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYT 阅读全文
posted @ 2017-06-07 21:14 鸿飞冥冥 阅读(112) 评论(0) 推荐(0)
摘要:os模块是与操作系统交互的一个接口 1、应用:返回上上级目录 2、方法介绍 阅读全文
posted @ 2017-06-07 21:02 鸿飞冥冥 阅读(129) 评论(0) 推荐(0)
摘要:1、如果不指定filename,则默认打印到终端 2、指定日志级别的方式: level = 10 level = logging.error 日志级别种类: CRITICAL = 50 FATAL = CRITICAL ERROR = 40 WARNING = 30 WARN = WARNING I 阅读全文
posted @ 2017-06-07 19:43 鸿飞冥冥 阅读(218) 评论(0) 推荐(0)
摘要:#random模块 import random list1 = [1,3,5,7,9] #print(random.random()) #0.09736432890033453 #(0,1)----float 大于0且小于1之间的小数 #print(random.randint(1,3)) # 1 ##[1,3] 大于等于1且小于等于3之间的整数 #pri... 阅读全文
posted @ 2017-06-04 23:31 鸿飞冥冥 阅读(117) 评论(0) 推荐(0)
摘要:时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。 格式化的时间字符串(Format String) 结构化的时间(struct_time):struct_time元 阅读全文
posted @ 2017-06-04 22:42 鸿飞冥冥 阅读(153) 评论(0) 推荐(0)
摘要:# grep -rl 'python' /root 搜索root目录下文件内容包含python的文件名路径 import os def init(func): def wrapper(*args,**kwargs): res = func(*args,**kwargs) next(res) return res return w... 阅读全文
posted @ 2017-06-03 23:37 鸿飞冥冥 阅读(1272) 评论(0) 推荐(0)
摘要:参考博客:http://www.cnblogs.com/linhaifeng/articles/6384466.html 阅读全文
posted @ 2017-06-03 20:48 鸿飞冥冥 阅读(136) 评论(0) 推荐(0)
摘要:2、from ... import 需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误,如:from a import b.c是错误语法 3、__init__.py文件 不管是哪种方式,只要是第一次导入包或者是包的任何其他部分,都会依次执行包下的__init__ 阅读全文
posted @ 2017-06-03 11:57 鸿飞冥冥 阅读(149) 评论(0) 推荐(0)
摘要:模块的搜索顺序 #内存----》内置------》sys.path import sys print(sys.path) #打印出当前的sys.path的搜索路径,在内存和内置中都找不到该模块的情况下会到下面的这些路径逐个去找,并以打印出的顺序作为优先级。 #['D:\\Python_OldBoy\\day05\\模块与包', 'D:\\Python_OldBoy', 'C:\\Users... 阅读全文
posted @ 2017-06-03 10:20 鸿飞冥冥 阅读(1839) 评论(0) 推荐(0)
摘要:__name__模块被当做脚本执行时,__name__ = '__main__' 模块被当做模块导入时,__name__= 模块名 利用这种模式可以将测试代码放入如下模式中,则只有在模块自己执行时才会执行,被导入时不会执行 #-*- coding=utf-8 -*- __all__ = ['money','read1'] money = 1000 def read1(): print(... 阅读全文
posted @ 2017-06-03 09:38 鸿飞冥冥 阅读(158) 评论(0) 推荐(0)
摘要:同级目录导入模块直接导入,一个py文件就是一个模块 #导入模块的方法: 1、import 模块名1,模块名2 #注意只是模块名,不药写。py等后缀 2、import 模块名 as 别名 3、from 模块名 import 函数名 4、from 模块名 import * 跟__all__ = ['money','read1']结合使用 '''1、import直接导入模块名 impor... 阅读全文
posted @ 2017-06-03 09:23 鸿飞冥冥 阅读(161) 评论(0) 推荐(0)
摘要:5、查看及设置递归次数 6、递推年龄 7、二分法运用: 阅读全文
posted @ 2017-06-02 23:08 鸿飞冥冥 阅读(219) 评论(0) 推荐(0)