# 03多任务(线程 & 进程) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 具体的请查看该篇章中的代码实现。 **** |Author|白发老书生| |---|--- |E-mail|china.hao.zhang@gmail.com ****

目录

* [Day01](#day01) * 01-知识回顾 * 02-三次握手与listen函数参数和accept函数功能说明 * 03-四次挥手与address in use问题说明 * 04-TCPIP参考模型-了解 * 05-多任务目的-并发-并行-重点 * 06-线程概念和使用threading的Thread创建线程-重点 * 07-阻塞等待所有子线程退出后继续执行代码 * 08-Thread子类并且实现其中run方法 * 09-小结-线程执行状态转换 * 10-多线程共享全局变量引起资源竞争混乱-重点 * 11-多线程同步之互斥锁可以保证只能被一个任务所占有-重点 * 12-给线程函数传递参数 * 13-互斥锁总结 * 14-案例-多任务聊天工具 * [Day02](#day02) * 01-昨日回顾 * 02-线程死锁问题-了解 * 03-程序对比进程概念-进程状态切换-重点 * 04-创建子进程-获取PID-PPID-重点 * 05-Process实例对象的方法和属性说明-重点 * 06-多进程执行顺序不确定-进程间不共享全局数据 * 07-使用Queue完成进程间通信-重点 * 08-Queue的full empty qszie方法-重点 * 09-案例-文件夹复制效果演示和流程分析 * 10-案例-文件夹复制代码实现 * [Day03](#day03) * 01-昨日回顾 * 02-Queue队列的get put阻塞超时和非阻塞操作说明 * 03-理解进程池的工作模式-区分两种添加任务的区别 * 04-进程池的细节说明 * 05-迭代概念-可迭代对象-如何判断可迭代对象 * 06-对可迭代对象的迭代过程分析-iter函数获取迭代器-next函数通过迭代器取出下一个元素的值 * 07-实现一个提供迭代器的可迭代对象 * 08-判断一个对象是否是迭代器 * 09-使用迭代器计算斐波纳契数列 * 10-迭代器小结 * 11-生成器是一种特殊的迭代器支持所有迭代器的操作-生成器表达式-生成器函数-yield关键字作用分析 * 12-生成器计算斐波纳契数列 * 13-掌握yield关键字两个作用-使用send函数给生成器对象发送数据-总结 * [Day04](#day04) * 01-复习 * 02-yield和greenlet实现协程切换执行-了解 * 03-gevent实现协程自动切换执行-重点 * 04-案例-网页多任务下载器 * 05-进程线程协程总结-重点 * 06-使用集线器和交换机进行网络组网-了解 * 07-使用路由器进程网络组网-了解 * 08-上网过程分析-了解 * 09-网络概念小结-了解 * 10-NAT地址转换可以让多台设置使用同一公网IP不同端口上网-了解 * 11-HTTP协议介绍 * 12-使用浏览器对HTTP请求响应过程进行分析 * 13-HTTP请求格式说明-重点 ## COMMITS [Commits](https://github.com/HaoZhang95/PythonAndMachineLearning/commits/master) ## 报告问题 [Issues](https://github.com/HaoZhang95/PythonAndMachineLearning/issues)