守护线程:服务于非守护线程;
quene:程序的解耦;
生产者消费者模型:也就是为了实现解耦
event:事件---红绿灯实验
i/o不占用cpu,计算占用
python多线程不适合cpu密集型操作任务,适合i/o密集型任务
今天的课程:
- govent协程
- select\poll\epoll异步I/O事件驱动
- python连接mysql的基本操作
- rabbitmq队列
- redis/memcached缓存
- paramiko ssh
- twisted网络框架
一、多进程
解决多核问题而生
单个进程:
1 2 3 4 5 6 7 8 9 10 |
|
多进程:
1 2 3 4 5 6 7 8 9 10 11 |
|
获取进程id:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
每一个子进程都是有其父进程启动的
进程间通信:Queue
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
此时的q也就是pickle序列化和 反序列化之后的结果了,实现了进程间的通信
管道pipe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
mananger:实现进程间数据共享
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
结果如下:
1 2 3 4 5 6 7 8 |
|
进程锁:实现进程同步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
进程池:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
二、协程
又名微线程,轻量级线程;
协程拥有自己的寄存器上下文和栈;协程