上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 21 下一页
摘要: 数据库 什么是数据库 管理数据的系统 安装某种管理数据的系统 管理对象本质是文件 存数据的位置 内存,硬盘 什么是系统 运行在硬件基础上,管理其他软件 数据库的组成 库:存放多张表 文件夹 表:包含多条相同结构的记录 文件 记录:包含多个key value键值对的一条数据 二进制数据 字段:描述信息 阅读全文
posted @ 2019-09-20 15:14 黑糖A 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 并发主干内容回顾 进程: 一个程序运行起来,资源集合. 开启进程的过程: 操作系统开辟一个内存空间, 把代码放进去, 去运行代码(需要cpu). ps:(如果是python的话会把解释器代码也放进去) 特点: 进程的内存空间彼此隔离 主进程要等待所有的子进程结束(原因是:回收僵尸进程) multip 阅读全文
posted @ 2019-09-19 20:59 黑糖A 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 协程 python的线程用的是操作系统原生的线程 协程 :单线程下实现并发 ​ 并发:切换+保存状态 ​ 多线程:操作系统帮你实现的,如果遇到io切换,执行时间过长也会切换,实现一个雨露均沾的效果. 什么样的协程是有意义的? 遇到io切换的时候才有意义 具体: ​ 协程概念本质是程序员抽象出来的,操 阅读全文
posted @ 2019-09-19 20:58 黑糖A 阅读(148) 评论(0) 推荐(0) 编辑
摘要: socket多线程 客户端 服务端 阅读全文
posted @ 2019-09-19 20:26 黑糖A 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 进程池和线程池 池的功能是限制进程数和线程数 什么时候限制? 当并发的任务数量远远大于计算机所能承受的范围,即无法一次性开启过多的任务数量 就应该考虑去限制进程数或线程数,从而保证服务器不崩 提交任务的两种方式: 同步:提交了一个任务,必须等任务执行完了(拿到返回值),才能执行下一行代码 异步:提交 阅读全文
posted @ 2019-09-19 18:33 黑糖A 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 线程定时器 Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer是Thread的一个派生类 阅读全文
posted @ 2019-09-19 15:28 黑糖A 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 线程queue queue队列:使用import queue,用法与进程Queue一样 queue.Queue() 先进先出 queue.LifoQueue() 堆栈,先进后出 queue.PriorityQueue() 根据优先级取数据 阅读全文
posted @ 2019-09-19 15:21 黑糖A 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 昨日回顾 线程锁 本质就是一个互斥锁 使用目的:保证数据的安全 死锁问题 线程1抢到了锁A没释放 线程2抢到了锁B没释放 线程1往下执行需要锁B 线程2往下执行需要锁A 解决方法:递归锁(RLock) 特点:只有同一个线程下可以多次acquire,acquire了几次就要release几次 信号量 阅读全文
posted @ 2019-09-19 14:56 黑糖A 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 多线程vs多进程 计算密集型 io密集型 阅读全文
posted @ 2019-09-18 16:14 黑糖A 阅读(133) 评论(0) 推荐(0) 编辑
摘要: GIL GIL介绍 在Cpython解释器中有一把GIL锁(全局解释器锁),GIL锁本质是一把互斥锁 导致了同一进程下,同一时间只能运行一个线程,无法利用多核优势 同一个进程下多个线程只能实现并发不能实现并行 为什么要有GIL? 因为Cpython自带的垃圾回收机制不是线程安全的,所有要有GIL锁 阅读全文
posted @ 2019-09-18 15:59 黑糖A 阅读(90) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 21 下一页