随笔分类 -  杂记

摘要:恢复内容开始 事件驱动编程思想: 一种编程范式 阻塞IO:只发了一次系统调用 触发方式: 1 水平触发 select属于水平触发 2 边缘触发 3 IO多路复用 同时可以监听多个。单线程下实现并发 select poll epoll 异步 IO 最大的特点,全程无阻塞 恢复内容结束 阅读全文
posted @ 2018-05-09 17:35 阜阳小全 阅读(75) 评论(0) 推荐(0)
摘要:import time from multiprocessing import Process,Pool def Foo(i): time.sleep(1) print(i) def Bar(arg): print('hello') if __name__ == '__main__': pool = Pool(5) #进程池的容量是5 for i... 阅读全文
posted @ 2018-05-07 15:01 阜阳小全 阅读(92) 评论(0) 推荐(0)
摘要:import time,random import queue,threading q = queue.Queue() def Producer(name): count = 0 while count < 10: print('making-------------') time.sleep(random.randrange(3)) ... 阅读全文
posted @ 2018-05-07 07:34 阜阳小全 阅读(110) 评论(0) 推荐(0)
摘要:先进先出模式 先进后出模式 优先级模式 阅读全文
posted @ 2018-05-04 18:38 阜阳小全 阅读(122) 评论(0) 推荐(0)
摘要:import time,threading class MyThread(threading.Thread): def run(self): if semaphore.acquire(): print(self.name) time.sleep(1) semaphore.release() if ... 阅读全文
posted @ 2018-05-04 17:56 阜阳小全 阅读(101) 评论(0) 推荐(0)
摘要:''' event.wait() #设定阻塞,此时线程会被阻塞,等遇到event.set()时,线程会继续运行 event.set() event.clear() # ''' import time,threading class Boss(threading.Thread): def run(self): print('Boss:','今晚加班到10点') ... 阅读全文
posted @ 2018-05-04 17:45 阜阳小全 阅读(101) 评论(0) 推荐(0)
摘要:一种情况,会造成死锁,,代码如下 用递归锁,可以避免死锁。代码如下 阅读全文
posted @ 2018-05-04 14:49 阜阳小全 阅读(127) 评论(0) 推荐(0)
摘要:''' GIL:全局解释锁 因为有GIL,所以,同一时刻,只有一个线程被cpu执行 处理方法:多进程+协程 任务种类:IO密集型 计算密集型 对于IO密集型的任务,Python的多线程时有意义的 可以采用多进程+协程 对计算密集型的任务,Python的多线程就不推荐,Python就不适用了 ''' # 同步锁 import threading i... 阅读全文
posted @ 2018-05-04 14:40 阜阳小全 阅读(102) 评论(0) 推荐(0)
摘要:恢复内容开始 1.同步锁(掌握) 2.死锁,递归锁(掌握) 3同步对象,信号量(了解) 4 队列(重点) 生产者,消费者模型的创建 5 进程(重点) 并发&并行 并发:是指系统具有处理多个任务(动作)的能力 并行:是指系统具有 同时 处理多个任务(动作)的能力 并行是并发的一个子集 同步 与 异步 阅读全文
posted @ 2018-05-04 14:39 阜阳小全 阅读(105) 评论(0) 推荐(0)
摘要:多线程的另外一种调用方法 阅读全文
posted @ 2018-05-03 18:08 阜阳小全 阅读(176) 评论(0) 推荐(0)
摘要:服务端: 客户端: 阅读全文
posted @ 2018-04-25 16:10 阜阳小全 阅读(333) 评论(0) 推荐(0)
摘要:#面向对象# 类:把一类事物的相同特性和动作整合到一起就是类。类是抽象的# 对象:就是基于类而创建的一个具体的事物(具体存在的),也是特征和动作整合一起#类:学校#类的特征:校名,地址,性质#对象(动作,功能):招生,放假#用函数实施面向对象编程def school(name,addr,type): 阅读全文
posted @ 2018-04-13 16:27 阜阳小全 阅读(125) 评论(0) 推荐(0)
摘要:import configparserconfig = configparser.ConfigParser() #相当于有一个空字典configimport configparserconfig = configparser.ConfigParser()config["DEFAULT"] = {'S 阅读全文
posted @ 2018-04-12 22:56 阜阳小全 阅读(101) 评论(0) 推荐(0)
摘要:import logging# logging.basicConfig #要么将message写入文件,要么显示到屏幕,两者不能同步 .这种方法比较少用logging.basicConfig( level=logging.DEBUG, filename='logger.logging', filem 阅读全文
posted @ 2018-04-12 21:29 阜阳小全 阅读(82) 评论(0) 推荐(0)
摘要:# import xml.etree.cElementTree as ET #用ET 代指xml.etree.cElementTree模块,方便后面模块的取用## tree = ET.parse('country')# root = tree.getroot() #得到根节点# print(root 阅读全文
posted @ 2018-04-11 21:40 阜阳小全 阅读(93) 评论(0) 推荐(0)
摘要:#json 模块输出的结果都是json字符串,可以被其他语言识别import jsona = {'name':'alex'} # >{"name":"alex"} >'{"name":"alex"}'b = 9 # >'9'c = 'hello' # >"hello" >'"hello"'d = [ 阅读全文
posted @ 2018-04-11 17:23 阜阳小全 阅读(93) 评论(0) 推荐(0)
摘要:import syssys.exit() #退出当前程序print(sys.platform) #获取系统信息print(sys.argv)a = sys.argv[1:]import time#打印进度条for i in range(100): sys.stdout.write('#') #打印进 阅读全文
posted @ 2018-04-11 14:43 阜阳小全 阅读(103) 评论(0) 推荐(0)
摘要:os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1' 阅读全文
posted @ 2018-04-11 12:37 阜阳小全 阅读(82) 评论(0) 推荐(0)
摘要:import sys,osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#__file__#os.path.abspath(__file__)获取当前文件的绝对路径#os.path.dirname()获取当 阅读全文
posted @ 2018-04-11 11:25 阜阳小全 阅读(148) 评论(0) 推荐(0)
摘要:#random 随机模块import randomprint(random.random()) #随机获取0到1的浮点数print(random.uniform(1,4)) #随机选取1到1之间的浮点数print(random.randint(1,4)) #随机获取[1,4]中的整型 可以去的值有1 阅读全文
posted @ 2018-04-11 11:24 阜阳小全 阅读(161) 评论(0) 推荐(0)