摘要: 并发主干内容回顾 进程: 一个程序运行起来,资源集合. 开启进程的过程: 操作系统开辟一个内存空间, 把代码放进去, 去运行代码(需要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) 编辑