摘要: 数据库服务器中存放的是 库(文件夹) 表(文件) 表里面是记录(一行数据) 库相关(创建文件夹) 创建 create database 数据库名 charset 编码名称 create database lmz charset utf8; 结果: 修改(不能修改数据库名称,除非删除重建) alter 阅读全文
posted @ 2018-09-11 20:56 没有显示名称 阅读(221) 评论(0) 推荐(0)
摘要: 如上图所示,由于服务端和客户端的编码格式不同,所以我们需要解决乱码问题 如图,添加一个my.ini文件 文件内容如下: [mysqld] character-set-server = utf8 collation-server = utf8_general_ci [mysql] default-ch 阅读全文
posted @ 2018-09-11 17:41 没有显示名称 阅读(131) 评论(0) 推荐(0)
摘要: 2.问题 3.提高计算机性能的方式 目前常见的数据库 1.关系型数据库( 数据与数据之间可以建立关联关系(用户数据和购买信息)): 2.非关系型数据库(速度贼快, key value 存取) MongoDB redis memcache 数据库相关概念 1.什么是数据 2.表 就是一个一个的文件 3 阅读全文
posted @ 2018-09-11 17:16 没有显示名称 阅读(200) 评论(0) 推荐(0)
摘要: 同进程的一样,线程的一个关键特性是每个线程都是独立运行且状态不可预测。如果程序中的其 他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就会变得非常棘手。为了解决这些问题,我们需要使用threading库中的Event对象。 对象包含一个可由线程设置的信号标志,它允许线程等待某 阅读全文
posted @ 2018-09-07 17:33 没有显示名称 阅读(12440) 评论(0) 推荐(0)
摘要: queue队列 :使用import queue,用法与进程Queue一样import queue queue.Queue() #先进先出 q=queue.Queue(3) #设置队列长度为3,如果put超过三个程序会阻塞 q.put(1) q.put(2) q.put(3) print(q.get( 阅读全文
posted @ 2018-09-07 17:26 没有显示名称 阅读(421) 评论(0) 推荐(0)
摘要: 1.线程理论 阅读全文
posted @ 2018-09-06 17:00 没有显示名称 阅读(235) 评论(0) 推荐(0)
摘要: 1.进程间通信(IPC机制) 第一种:管道 第二种:队列=管道+锁 注:队列占用的是内存的大小,不应该放大数据,应该放一些简单的消息 阅读全文
posted @ 2018-09-06 15:47 没有显示名称 阅读(163) 评论(0) 推荐(0)
摘要: 原因:并发运行,效率高,但竞争写同一文件,数据写入错乱加锁:购票行为由并发变成了串行,牺牲了运行效率,但保证了数据安全通过mutex.acquire()加锁,mutex.release()解锁也可通过with mutex实现自动加解锁注意:join只能将进程的任务整体变成串行代码:import js 阅读全文
posted @ 2018-09-05 16:44 没有显示名称 阅读(159) 评论(0) 推荐(0)
摘要: 开启子进程的方式一:导入Process模块,通过process类实例化出一个对象,调用run方法开启子进程from multiprocessing import Processimport timedef task(name): print('%s is running' %name) time.s 阅读全文
posted @ 2018-09-05 16:42 没有显示名称 阅读(162) 评论(0) 推荐(0)
摘要: 装饰器是在不修改源代码的情况下,使用装饰器增加原函数的功能。 在软件开发中有一个原则——"开放-封闭",简单地说就是已经实现的功能不允许被修改,但可以被扩展。 封闭:已经实现的功能不可以被修改 开放:对现有的功能可以扩展 这个小实验写了三个装饰器和两个普通函数,对比可以得出装饰器运行的过程 运行结果 阅读全文
posted @ 2018-08-14 17:16 没有显示名称 阅读(935) 评论(0) 推荐(0)