08 2019 档案

摘要:1 使用模块 将上面的代码保存在文件 mysingleton.py 中,要使用时,直接在其他文件中导入此文件中的对象,这个对象即是单例模式的对象 2 使用装饰器 3 使用类 一般情况,大家以为这样就完成了单例模式,但是这样当使用多线程时会存在问题 4 基于__new__方法实现(推荐使用,方便) 通 阅读全文
posted @ 2019-08-27 20:37 Nmdlao 阅读(169) 评论(0) 推荐(0)
摘要:外键 前戏之一对多关系 一对多(Foreign Key) 多对多 一对一 客户表和学生表(老男孩的客户与学生之间,报名之前都是客户,只有报了名的才能是学生) 小总结 修改表 复制表 阅读全文
posted @ 2019-08-20 14:57 Nmdlao 阅读(772) 评论(0) 推荐(0)
摘要:存储引擎 文件格式有很多种,对应的软件也有很多种txt,pdf等 针对不同类型的文件,需要对应有不同的软件帮助我们去操作 现在创建表时默认使用innodb引擎,因为innodb引擎:支持事务处理;提供了行锁,提供外键约束 保证了数据的安全 myisam是之前使用的引擎,myisam具有索引,可以支持 阅读全文
posted @ 2019-08-19 21:31 Nmdlao 阅读(145) 评论(0) 推荐(0)
摘要:创建表的完整语法 基本数据类型 整型 分类:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等 类型存储范围:参考图片http://www.cnblogs.com/linhaifeng/articles/7233411.html 验证整 阅读全文
posted @ 2019-08-19 15:21 Nmdlao 阅读(222) 评论(0) 推荐(0)
摘要:# 串行执行时间 1.2812573909759521 # import time # # # def func1(): # for i in range(10000000): # i += 1 # # # def func2(): # for i in range(10000000): # i += 1 # # # start_time = t... 阅读全文
posted @ 2019-08-18 16:30 Nmdlao 阅读(111) 评论(0) 推荐(0)
摘要:from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor import os import time ''' 进程池与线程池 开进程开线程都需要消耗资源,只不过两者比较的情况线程消耗的资源比较少 在计算机能够承受范围之内最大限度的利用计算机 什么是池? 在保证计算机硬件安全的情况下最大限度的利用计算机 池其实是降低 阅读全文
posted @ 2019-08-18 16:28 Nmdlao 阅读(123) 评论(0) 推荐(0)
摘要:数据库概念 那Mysql能干嘛呢?它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作 那我们暂且能不能理解为mysql就是用来帮我们操作文件的! 我们也可以再把数据可理解为就是帮我们增删改查数据 MySQL:用于管理文 阅读全文
posted @ 2019-08-17 13:25 Nmdlao 阅读(159) 评论(0) 推荐(0)
摘要:import queue ''' 在同一个进程下的多个线程本来就能数据共享,为什么还要有队列 因为队列是管道加锁 使用队列你就不需要自己手动解决操作锁的问题 因为锁操作的不好 就会造成死锁现象 ''' # 普通队列 # q = queue.Queue() # q.put('hello') # print(q.get()) # 先进后出队列 就是堆栈 # q = queue.Lifo... 阅读全文
posted @ 2019-08-14 17:19 Nmdlao 阅读(152) 评论(0) 推荐(0)
摘要:from threading import Event,Thread import time ''' event事件能实现子线程等待子线程运行结束 join只能主线程等待子线程运行结束 ''' # 先生成一个event对象 e = Event() def light(): print('红灯亮') time.sleep(2) e.set() print('... 阅读全文
posted @ 2019-08-14 17:18 Nmdlao 阅读(102) 评论(0) 推荐(0)
摘要:# 信号量可能在不同领域对应不同的知识点 ''' 互斥锁:代表一个坑位 信号量:代表一个公共厕所,有多个坑位 ''' from threading import Semaphore,Thread import time import random sm = Semaphore(4) # 制造一个有五个坑位的厕所 def task(name): sm.acquire() p... 阅读全文
posted @ 2019-08-14 17:17 Nmdlao 阅读(112) 评论(0) 推荐(0)
摘要:from threading import Thread, Lock, RLock import time ''' Rlock锁 也被称之为递归锁 第一个抢到Rlock锁的人,可以连续使用acquire,release 每acquire一次,锁身上计数加1 每release一次,锁身上计数减1 等锁身上的计数为0时,其他人就可以抢锁 ''' # mutexA = Lock() # mutexB... 阅读全文
posted @ 2019-08-14 17:17 Nmdlao 阅读(154) 评论(0) 推荐(0)
摘要:内存管理 引用计数:值与变量的绑定关系的个数 标记清除:当内存快要满的时候 会自动停止程序的运行 检测所有的变量与值的绑定关系 给没有绑定关系的值打上标记,最后一次性清除 分代回收:(垃圾回收机制也是需要消耗资源的,而正常一个程序的运行内部会使用到很多变量与值 并且有一部分类似于常量,减少垃圾回收消 阅读全文
posted @ 2019-08-14 17:16 Nmdlao 阅读(123) 评论(0) 推荐(0)
摘要:守护线程 阅读全文
posted @ 2019-08-12 22:31 Nmdlao 阅读(108) 评论(0) 推荐(0)
摘要:线程互斥锁 阅读全文
posted @ 2019-08-12 22:31 Nmdlao 阅读(118) 评论(0) 推荐(0)
摘要:线程对象及其他方法 阅读全文
posted @ 2019-08-12 22:30 Nmdlao 阅读(125) 评论(0) 推荐(0)
摘要:线程理论 阅读全文
posted @ 2019-08-12 22:29 Nmdlao 阅读(129) 评论(0) 推荐(0)
摘要:创建线程的两种方式 阅读全文
posted @ 2019-08-12 22:29 Nmdlao 阅读(149) 评论(0) 推荐(0)
摘要:生产者消费者模型 阅读全文
posted @ 2019-08-12 22:28 Nmdlao 阅读(126) 评论(0) 推荐(0)
摘要:进程间的通信 进程间通信ICP机制 阅读全文
posted @ 2019-08-12 22:27 Nmdlao 阅读(539) 评论(0) 推荐(0)
摘要:''' 模拟抢票不加互斥锁的情况下,所有抢票的进程都是并发,操作同一份数据,会造成数据错乱 这个时候必须加锁处理 将并行变成串行 这样会降低进程的执行效率,但会提高数据的安全性 注意: 1.锁不要轻易使用 容易造成死锁现象 2.只在处理数据的部分加锁不要再全局加锁 锁必须在主进程中产生,交给子进程去使用 ''' # 模拟抢票 import json from multiprocessing imp 阅读全文
posted @ 2019-08-12 08:34 Nmdlao 阅读(120) 评论(0) 推荐(0)
摘要:# 主进程死亡 子进程也跟着死亡 from multiprocessing import Process import time def run(name): print('%s 正常运行'%name) time.sleep(3) print('%s 死亡'%name) if __name__ == '__main__': p = Process(targ... 阅读全文
posted @ 2019-08-12 08:32 Nmdlao 阅读(105) 评论(0) 推荐(0)
摘要:# join方法,主进程等待子进程运行结束,才会继续执行主进程 from multiprocessing import Process import time def run(name, i): print('%s running' % (name)) time.sleep(i) print('%s over' % name) if __name__ == '__... 阅读全文
posted @ 2019-08-12 08:31 Nmdlao 阅读(102) 评论(0) 推荐(0)
摘要:# 杀死进程 # 判断进程是否存活 # 寻找主进程 from multiprocessing import Process, current_process import time import os def run(name): # print('%s is running'%name,current_process().pid) print('%s is running... 阅读全文
posted @ 2019-08-12 08:31 Nmdlao 阅读(110) 评论(0) 推荐(0)
摘要:# 创建进程的两种方式 # 创建进程第一种方法 # from multiprocessing import Process # import time # # # def run(name): # print('%s running'%name) # time.sleep(3) # print('%s over'%name) # # # # 在windows中创建进程时... 阅读全文
posted @ 2019-08-12 08:30 Nmdlao 阅读(691) 评论(0) 推荐(0)
摘要:# 多道技术 # 1.空间上的复用 # 多个程序共用一套计算机硬件 # # 2.时间上的复用 # 切换+保存状态 # 1.当一个程序遇到IO操作 操作系统会剥夺该程序的cpu执行权限(提高了cpu的利用率 并且也不影响程序的执行效率) # # # 2.当一个程序长时间占用cpu 操作系统也会剥夺该程序... 阅读全文
posted @ 2019-08-12 08:29 Nmdlao 阅读(142) 评论(0) 推荐(0)
摘要:socketserver模块 socketserver模块能让TCP实现并行 客户端 服务端 socketserver模块同样支持udp 客户端 服务端 阅读全文
posted @ 2019-08-08 22:30 Nmdlao 阅读(114) 评论(0) 推荐(0)
摘要:UDP协议 udp协议四大特点 1.不会粘包 2.支持并发 3.客户端断开连接不会报错 4.允许客户端发空 udp与tcp相比: udp更像发短信,他需要对方回应,直接发过去就行 tcp像打电话,他需要对方回应才能继续发生 udp在发送数据时,会自动发送报头,所以不会粘包 而且udp不需要建立双向通 阅读全文
posted @ 2019-08-08 22:26 Nmdlao 阅读(150) 评论(0) 推荐(0)
摘要:客户端 服务端 阅读全文
posted @ 2019-08-08 22:16 Nmdlao 阅读(246) 评论(0) 推荐(0)
摘要:1、socket概念 图片位置 2、理解socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符 阅读全文
posted @ 2019-08-08 22:13 Nmdlao 阅读(150) 评论(0) 推荐(0)
摘要:异常处理 主动抛出异常 断言 自定义异常 阅读全文
posted @ 2019-08-08 18:41 Nmdlao 阅读(135) 评论(0) 推荐(0)
摘要:网络编程 软件开发架构 c/s架构(client/server) c:客户端 s:服务端 b/s架构(browers/server) b:浏览器 c:服务器 b/s架构本质就是c/s架构 手机端在未来b/s架构会变得更火 服务端就是24小时,不间断提供服务 客户端随时随地都能找服务端,体验服务 OS 阅读全文
posted @ 2019-08-06 20:12 Nmdlao 阅读(244) 评论(0) 推荐(1)