死锁:
产生原因:1互斥条件:一个资源每次只能被一个进程使用。
2请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不变
3不可剥夺条件:进程已获得资源,在未完成之前。不可强行剥夺
4循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
避免方法:预防死锁(摈除1以外的条件)2:避免死锁(银行家算法)3:检测死锁4:解除死锁(1剥夺资源,2撤销进程)
索引:是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息
ARP协议(地址解析协议):根基ip地址获取物理地址的一个TCP/IP协议
PoST与 Get:GET后退刷新无影响,POST会重新提交表单
GET不能被缓存,POST不能缓存。
Ge t对数据长度有限制(URL地址最大2048)
Post参数不会保存在浏览器历史中
cookie与session:
存储位置: 客户端。 服务器端
目的: 跟踪会话,保存用户名密码。 跟踪 会话、
安全。 不 安全
session技术是要使用到 COOKie的,之所以出现了Session技术,是为了安全
apache和nginx:
nginx:轻量级:比它占更少的内存及资源,配置简单。抗并发 :支持更多的并发连接
apache:比nginx强大,bug少,超稳定
http 与https :
https是http的安全版,在它下加入了ssl层,https的url表明它使用了http,但https存在
不同与http的默认端口及一个加密,提供了身份证与加密通讯方式,常用与交易支付方面
http:超文本传输协议:规定了浏览器和万维网服务器之间的通信规则
xsrf:跨站请求伪造,重点在于请求。x s s:跨站脚本攻击,重点在于脚本
浏览器缓存:主要就是http协议定义的缓存机制,在响应http请求时告诉浏览器在过期时间前浏览器可以
直接从浏览器缓存数据,而无需再请求
range与xrange:用法相同,rang生成的事一个序列[],x ran ge生成一个生成器,性能好,随机数大
lambda:能接受任意参数,但只返回一个表达式的值。s=lambda x,y:x+y
pass:用来占位
is 与==:
is判读的是a对象是否就是b对象,通过id值来判断
==用来比较a对象的值是否和b对象的值相等,通过value来判断
指向的内存单位中的值是不是相等a=1,b=1, a==b true. a is. b. false
zip:压缩成一个列表,元祖c=[()]
浅拷贝:会创建新对象,拷贝父对象,不会拷贝对象的内部的子对象(比如列表里的列表)
b=copy.copy(a),输出b和a一样
但是用is判断可以发现,它们不是一个对象,也不是同一片内存空间
深拷贝:拷贝对象的所有元素,包括嵌套元素
b=copy.deepcopy(a)
__init__:在对象创建后,对对象进行初始化
__new__:是在对象创建之前创建一个对象,
字典是一种数据结构,j son是一种数据的表现形式
del[i]用索引删除值
模块:一个代码文件就是一个模块,包:含许多代码的文件夹
脚本语言:也是解释性语言,不需要编译
代码规范:常量:_大写,私有变量:python不存在,小写_. __ xx__内置变量
字典是一种数据结构,json是一种数据的表现形式,json的值必须是字符串
列表去重:a=[], b=list(set(a))
x*11 for x in rang (10):
x=[0,11,22,33,,,]
set1,set2, x=set1&set2(只取出2个集合的相同元素)
y=set1^set2(取不同的元素)
*args:不定长参数,可以输入的参数是不确定的
**kwd:关键子参数,赋值的时候以=值方式chu
递归终止的条件:1判断递归 的次数是否达到某一限定。2判读运算 的结果是否达到某个范围
装饰器:在其他函数不需要做任何代码变动的情况下增加额外的功能
闭包:在函数内部定义一个函数,并且这个函数用到了外边函数的变量
>>>def addx(x):
>>> def adder(y): return x + y
>>> return adder
>>> c = addx(8)
>>> type(c)
<type 'function'>
>>> c.__name__
'adder'
>>> c(10)
18
tcp和udp:udp面向无连接的通讯协议,udp数据包括端口号和源端口号信息
优点:udp速度快,操作简单。由于通讯不需要连接,可以实现广播发送
缺点:udp传送数据前并不与对方建立连接,发送端不知道数据是否会正确接受,
也不重复发送,不可靠
tcp是面向连连的通讯协议,通过三次握手建立,和四次挥手
优:tcp保证来数据的正确性,较为可靠。
缺:tcp相对udp慢一点。要求资源也比较多