- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 数据结构总结
线性表线性表是一种典型的线性结构。头结点无前驱有一个后继,尾节点无后继有一个前驱。链表只能顺序查找,定位一个元素的时间为O(N),删除一个元素的时间为O(1)线性表的顺序存储结构:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。是一种随机存取的存储结构。顺序存储指内存地址是一块的,随机存取指访问时可以按下标随机访问,存储和存取是不一样的。如果是...
2020-02-17 23:34:16
518
1
原创 tcpcump命令
tcpdump 用法:# tcpdump -hUsage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] ...
2019-09-30 17:29:46
787
转载 IP分片和TCP分段
https://blog.youkuaiyun.com/renwotao2009/article/details/51488596
2019-09-30 17:17:34
260
转载 mysql 查询优化
https://www.cnblogs.com/chiangchou/p/6158918.htmlhttps://www.cnblogs.com/sanzashu/p/11045173.htmlhttps://blog.youkuaiyun.com/u011546953/article/details/81271347limit 优化:延迟关联。自关联SELECT * FROM test ...
2019-09-23 09:53:17
215
1
转载 mysql 锁
SQL Server有如下几种琐: 从类型上来看,可以分为共享锁、排它锁、更新锁 从范围来看,可以分为表锁、行锁(记录锁),间隙锁、next-key锁、页锁等。 共享锁:加了S锁的记录,允许其他事务再加S锁,不允许其他事务再加X锁,即会阻止其他用户的写和改。加锁方式:select…lock in share mode排他锁:加了X锁的记录,不允许其他事务再加S锁或者X锁。...
2019-09-05 20:05:07
159
原创 rabbitmq 笔记
basic.comsume会订阅消息并不断收取消息。直到取消订阅为止。 basic.get会获取单条消息,不能把basic.get放在一个循环里来替代basic.comsume,这样会影响性能。 当队列有多个消费之时,队列将以 round-robin的方式发送给消费者。每条消息值发送给一个消费者。 消费者接受到一条消息必须进行确认,通过basic.ack方式确认消息。或者在订阅消息的时候就讲...
2019-08-28 14:05:36
177
原创 sqlalchemy 相关总结
sqlalchemy有缓存机制,当你query到一条记录,这条记录会计入缓存,接下来的同样的query获取的都是缓存的对象 刷新flush会将更改的缓存提交到数据库,但是并没有commit,并不是一个完整的事务,其他人是查不到的,只要commit了才真正写到数据库。commit操作包含了flush的过程。 先query一个对象,接着update,commit,再query同一个对象,第二次qu...
2019-08-02 11:17:42
685
原创 mysql 基础
表操作创建:CREATE TABLE 表名 ( 属性名 数据类型 [完整约束条件], 属性名 数据类型 [完整约束条件], ... ... 属性名 数据类型 [完整约束条件]);#create table student (id int not null,name varchar(20) not null,sex varchar(20) de...
2019-07-16 13:20:02
131
原创 Python 魔法方法(七) __miss__ 无中生有的方法
通常,字典访问一个不存在的键时,会抛错 KeyError。这样带来的好处是,系统通知我们访问了一个不存在的键,我们回去检查错误的原因。但是坏处就是,程序运行中断。想知道有没有这个key,又不想抛错中断,用的最多的就是.get()方法,若key存在,则返回对应的value,若不存在可以指定返回值,默认是None。好了,有了.get()方法,我们就可以在抛错的边缘疯狂试探了。...
2019-06-22 12:00:38
760
原创 Python 异常捕获结构中finally陷阱
try-except-else-finally,这种语法经常用来捕获异常,但是对这个结构理解不到位可能会带来意料之外的输出。else是在没捕获到异常的时候会执行,这个基本语法逻辑不用细说。但是无论是否抛出异常,最终一定会执行finally,所以在finally中的处理还是挺关键的。1、保证finally中不要出现异常def f(): try: rai...
2019-04-17 19:59:09
1540
原创 进程、线程、协程(三) 多线程实现
Threading 是Tread的封装。一般调用多线程库都会调用Threading模块。Threading模块提供的类:Thread,Lock,Rlock,Condition, Semaphore, Event, Timer, local。threading 模块提供的实例方法:threading.currentThread(): 返回当前的线程变量。threading.enume...
2019-04-15 19:01:05
319
原创 进程、线程、协程(二) 多进程实现
Python的多线程并没有有效利用多个cpu,只用到一个cpu,为了最大的利用cpu资源和提高效率,一般用多进程去实现。Python多进程常用包时multiprocessing。包含Process、Queue、Pip、Lock、Pool、Manager、Semaphore、Event等类。下面分别对这些类进行使用和相关用法进行说明:1、Process类的构造方式:def...
2019-04-08 20:13:44
222
原创 进程、线程、协程(一) 相关概念归纳
进程进程就是一个程序在一个数据集上的一次动态执行过程。进程一般由程序、数据集、进程控制块三部分组成。进程调度由操作系统控制。进程是资源竞争的基本单位。优点:同时利用多个cpu,能同时进行多个操作。缺点:耗费内存空间;进程间不共享任何状态;进程通讯需要内核参与,通讯效率低;上下文进程间切换开销大线程线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最...
2019-03-06 20:16:51
199
原创 Python 魔法方法(六) 从__mro__ 了解类多继承顺序和原理
__mro__:python 类有多继承特性,如果继承关系太复杂,很难看出会先调用那个属性或方法。为了方便且快速地看清继承关系和顺序,可以用__mro__方法来获取这个类的调用顺序。举例class X(object):passclass Y(object):passclass A(X, Y):passclass B(Y):passclass C(A, B):passp...
2019-03-01 19:07:27
8579
原创 Python 魔法方法(五) 从__get__,__set__, __delete__再探属性访问顺序
这里需要先说一下描述符的概念。描述符:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议。描述符分数据描述符,只有__get__的描述符是非数据描述符,有__get__和__set__的描述符是数据描述符。__get__(self, instance, owner)—获取属性时调用,返...
2019-02-28 21:35:36
1217
2
原创 Python 魔法方法(四) 从__getattribuye__初探属性访问顺序
属性访问,首先要区分类属性和实例属性。可以用__dict__方法来查看。比如:class A(object): name = "unchange." #类属性 def __init__(self): self.value = 10 #实例属性a = A()print a.__dict__# {'value': 10}print A.__dic...
2019-02-27 20:44:49
325
原创 Python 魔法方法(三) __getattr__,__setattr__, __delattr__
1、__getattr__当我们访问一个不存在的属性的时候,会抛出异常,提示我们不存在这个属性。而这个异常就是__getattr__方法抛出的,其原因在于他是访问一个不存在的属性的最后落脚点,作为异常抛出的地方提示出错再适合不过了。看例子,我们找一个存在的属性和不存在的属性。class A(object): def __init__(self, value): ...
2019-02-26 20:27:03
24452
3
原创 Python 魔法方法(二) __str__() 和 __repr__()
两个方法的作用:将类信息转换成字符串形式的内容,让用户和开发人员获得类的更多信息。 先看例子>>> class A: pass >>> a1 = A()>>> a1<__main__.A object at 0x000000000302C358> >>> print(a1)&l
2019-02-22 20:33:48
385
原创 Python 魔法方法(一) __new__()
首先,只有新式类才有魔法方法__new__(),从Object类继承的子类,都是新式类。object类关于__new__()的定义如下:@staticmethod # known case of __new__ def __new__(cls, *more): # known special case of object.__new__ """ T.__new__...
2019-02-21 20:40:08
4226
1
原创 子字符串检索:find()和re正则匹配
一、find()方法1、基本语法S.find(sub, start=None, end=None) -> int参数解释:S:被检索的字符串sub:子字符串start:在S中检索的起始位置end:在S中检索的结束位置返回结果是int类型2.用法示例line = "this is fish."print line.find('fish')#8#<...
2019-02-16 16:48:17
18783
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人