# 7.6 本章小结

## 练习题

1、简述计算机操作系统中的“中断”的作用？

2、简述计算机内存中的“内核态”和“用户态”；

3、进程间通信方式有哪些？

4、简述你对管道、队列的理解；

5、请列举你知道的进程间通信方式；

6、什么是同步I/O，什么是异步I/O？

7、请问multiprocessing模块中的Value、Array类的作用是什么？举例说明它们的使用场景

8、请问multiprocessing模块中的Manager类的作用是什么？与Value和Array类相比，Manager的优缺点是什么？

9、写一个程序，包含十个线程，子线程必须等待主线程sleep 10秒钟之后才执行，并打印当前时间；

10、写一个程序，包含十个线程，同时只能有五个子线程并行执行；

11、写一个程序，要求用户输入用户名和密码，要求密码长度不少于6个字符，且必须以字母开头，如果密码合法，则将该密码使用md5算法加密后的十六进制概要值存入名为password.txt的文件，超过三次不合法则退出程序；

12、写一个程序，使用socketserver模块，实现一个支持同时处理多个客户端请求的服务器，要求每次启动一个新线程处理客户端请求；

## 作业

基于线程开发一个FTP服务器

作业需求:

1.在之前开发的FTP基础上，开发支持多并发的功能

2.不能使用SocketServer模块，必须自己实现多线程

3.必须用到队列Queue模块，实现线程池

4.允许配置最大并发数，比如允许只有10个并发用户
